资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Ado.netEntityFramework的Update最简单方法

Ado.net EntityFramework的Update最简单方法

网上看到很多朋友在Update的时候都会用如下方法:

创新互联是一家专注于成都做网站、成都网站制作和成都移动云计算中心的网络公司,有着丰富的建站经验和案例。

var sel=from t in _dataEntities.Employee where t.Id=newEntity.Id select sel;

if(sel.Count()==0)return;

Employee entity = sel.First();

entity.Name = newEntity.Name;

.......

简单的说就是将新对象的属性一个个复制,这样做当属性少的时候还可以,但属性多的时候就显的低效率,代码又长又恶心。所以自己总结出了UPDATE最简单的方法。

///

   /// 修改员工信息

   ///

   ///

   ///

   [OperationContract]

   public Employee UpdateEmployee(Employee newEntity)

   {

       _dataEntities.Employee.Attach(newEntity); // 附加对象

       _dataEntities.ApplyCurrentValues("Employee", newEntity); // 应用新对象

       _dataEntities.ObjectStateManager.ChangeObjectState(newEntity, EntityState.Modified); // 修改对象状态,当EntityState为Modified时,SaveChanges才会执行变更,否则无效。

       return CommitAllChanges(newEntity);

   }

以下是泛型方法,适用于增删改的数据保存,同时解决了并发冲突。

///

   /// 应用数据变更

   ///

   ///

   ///

   private T CommitAllChanges(T entity)

   {

       try

       {

           // 解决并发冲突

           if ((entity as EntityObject).EntityState!=EntityState.Added)

               _dataEntities.Refresh(RefreshMode.ClientWins, entity);

           _dataEntities.SaveChanges();

       }

       finally

       {

           if ((entity as EntityObject).EntityState != EntityState.Detached)

               _dataEntities.Refresh(RefreshMode.StoreWins, entity);

       }

       return entity;

   }


本文标题:Ado.netEntityFramework的Update最简单方法
URL链接:http://cdkjz.cn/article/pcsjss.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220