真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Ado.netEntityFramework的Update最簡單方法

Ado.net EntityFramework的Update最簡單方法

網(wǎng)上看到很多朋友在Update的時候都會用如下方法:

創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站制作和成都移動云計算中心的網(wǎng)絡公司,有著豐富的建站經(jīng)驗和案例。

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); // 修改對象狀態(tài),當EntityState為Modified時,SaveChanges才會執(zhí)行變更,否則無效。

       return CommitAllChanges(newEntity);

   }

以下是泛型方法,適用于增刪改的數(shù)據(jù)保存,同時解決了并發(fā)沖突。

///

   /// 應用數(shù)據(jù)變更

   ///

   ///

   ///

   private T CommitAllChanges(T entity)

   {

       try

       {

           // 解決并發(fā)沖突

           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;

   }


網(wǎng)頁題目:Ado.netEntityFramework的Update最簡單方法
網(wǎng)頁URL:http://weahome.cn/article/pcsjss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部