仅更新不同的更改

时间:2015-05-01 20:52:50

标签: c# asp.net-mvc entity-framework

我有一个实体集employee_table,我通过excel表获取数据,我已经加载到内存中,用户将点击Save以保存数据库中的更改及其一切都很好,第一次插入记录,没有问题。

但是如何才更新所做的更改?意思是,假设我有10行和5列,10行中说第7行被修改,5列中的第3列被修改,我只需更新那些更改并保留其他值的现有值列。

我可以检查if (myexistingItem.Name != dbItem.Name) { //update },但它非常乏味且效率不高,我确信有更好的方法可以处理。

这是我到目前为止所得到的。

var excelData = SessionWrapper.GetSession_Model().DataModel.OrderBy(x => x.LocalName).ToList();;
var dbData = context.employee_master.OrderBy(x => x.localname).ToList();

employee_master = dbEntity = employee_master();

if (dbData.Count > 0)
{
   //update
   foreach (var dbItem in dbData)
   {
      foreach(var xlData in excelData)
      {
         if(dbItem.customer == xlData.Customer)
         {
            dbEntity.customer = xlData.Customer;
         }
         //...do check rest of the props....
         db.Entry(dbEntity).State = EntityState.Modified;
         db.employee_master.Add(dbEntity);
      }
   }

   //save
   db.SaveChanges();
}
else
{
  //insert
}

0 个答案:

没有答案