日期:2014-05-17  浏览次数:20508 次

请求大家一个关DAL层的实体类问题。。。懂DAL层的人,请进。。。。。。。。。。。。。。。。。。。。。。讲就发分
说一个简单场景

#region 客服更新订单资料
        /// <summary>
        /// 客服更新订单资料
        /// </summary>
        /// <param name="model">实体类</param>
        /// <returns>返回BOOL值表示是否成功</returns>
        public bool UpOrder(Model.Orders model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update Orders set ");
            strSql.Append("DeliveryTime=@DeliveryTime,");
            strSql.Append("DeliveryPlace=@DeliveryPlace,");
            strSql.Append("Status=@Status");
            strSql.Append(" where PKid=@PKid ");
            SqlParameter[] parameters = {
new SqlParameter("@DeliveryTime", SqlDbType.DateTime),
new SqlParameter("@DeliveryPlace", SqlDbType.NVarChar,50),
new SqlParameter("@Status", SqlDbType.Int,4),
new SqlParameter("@PKid", SqlDbType.Int,4)};
            parameters[0].Value = model.DeliveryTime;
            parameters[1].Value = model.DeliveryPlace;
            parameters[3].Value = model.Status;
            parameters[4].Value = model.PKid;

//其它代码
        }
        #endregion

在DAL层,UpOrder更改订单资料内面,可以看到,更改DeliveryTime,DeliveryPlace,Status
这个三个字段,但是,用Model.Orders这个实体类,进行传值,

但是问题是,Model.Orders 这个实体类,不止,DeliveryTime,DeliveryPlace,Status
这个三个字段,Model.Orders 这个实体类有很多字段。

这样有前台调用的时候,我并不知道,UpOrder这个方法需要传进多少个参数,不得不再去看DAL的更新语句,才知道,需要传的值是DeliveryTime,DeliveryPlace,Status,Pkid,这几个。。

有什么,办法,不需要去,DAL也知道需要传进的值是多少个昵。。

我想到一个解决方法,就是新建一个model类,但是,有很多更新方法,那岂不是,要建很多更新对应的model类。。?

这样不科学吧。。不是大家有什么方法。。。

------解决方案-----------------