悬赏分:50 离问题结束还有 10 天 23 小时 浏览:84 次
现在两段代码
数据层:
public static int GetCount(int UserID)
{
SqlParameter[] ps = BaseProvider.GetParameter("User","UserID");
ps[2].Value = " UserID = " + UserID + " and IsFreeze=0";
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, "GetTotalCountByWhere", ps);
return Convert.ToInt32(ps[3].Value.ToString());
}
逻辑层:
public int GetFreezeCount(int UserID)
{
return Provider.User.GetCount(UserID);
}
还有一种是
数据层:
public static int GetCount(string Where)
{
SqlParameter[] ps = BaseProvider.GetParameter("User","UserID");
ps[2].Value = Where
SqlHelper.ExecuteNonQuery(ConnectionString, CommandType.StoredProcedure, "GetTotalCountByWhere", ps);
return Convert.ToInt32(ps[3].Value.ToString());
}
逻辑层:
public int GetFreezeCount(int UserID)
{
return Provider.User.GetCount("UserID="+UserID.ToString()+" and IsFreeze=0");
}
到底哪一种写法才是对的呢
IsFreeze表示是否冻结的意思,那个IsFreeze=0这个条件是属于业务逻辑呢?还是属于数据操作呢
第一种好还是第二种好呢
还有一个问题就是
在做数据更新的时候一般都是这些写的
public void UpdateInfo(Module.PlanInfo info)
{
Provider.Plan.Update(info.PlanID, info.AdCount,info.PlanCount, info.IsStop,info.AdvertiseID);
}
这样表示全部字段都更新,但是一般情况下只要更新一两个字段就够了
例如public void UpdateAdCount(int PlanID,int AdCount,int PlanCount){}
现在有两种做法一种是在UpdateAdCount根据PlanID重新Get至一个实体类,再把这两个参数的值赋给实体类的字段
最后还是调用UpdateInfo这个方法
另外一种做法就是到数据层再写一个方法
Provider.Plan.Update(int PlanID, int AdCount,int PlanCount);
最后逻辑层直接调用这个方法
第一种要损耗一点性能
第二种代码写多很多,
要如何取舍呢
|
3天前 马陈灵 : 那第二问题不知道你是怎么做的呢 |