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