将EntityFramework.Extensions库与LOB项目一起使用

时间:2016-06-25 23:52:34

标签: c# entity-framework

EntityFramework.Extensions库用于更新实体,如下所示

//update all tasks with status of 1 to status of 2
context.Tasks.Update(
        t => t.StatusId == 1,
        t2 => new Task {StatusId = 2});

在LOB应用程序中如果用户修改了用户界面中实体集合的多个属性,那么它们会被发送到Service层进行更新,上面的语法不实用 如何更改具有不同实体的不同属性的这批实体可以使用EntityFramework.Extensions

进行更新

例如,将Generic Repository用于相同目的时:

 public virtual void Update(params T[] items)
    {
       using (var context = new Entities())
        {
          foreach (T item in items)
          {
             context.Entry(item).State = System.Data.EntityState.Modified;
          }
         context.SaveChanges();
       }
    }

我们如何使用EntityFramework.Extensions库

来做同样的事情

1 个答案:

答案 0 :(得分:0)

遗憾的是有两个Entity Framework Extensions Library。

自2012年以来,第一个图书馆处于测试版状态,并且所有者不支持:https://entityframeworkext.codeplex.com/

免责声明:我是该项目的所有者Entity Framework Extensions

第二个库支持所有类型的批量操作:

  • BulkSaveChanges
  • BulkInsert
  • BulkUpdate
  • BulkDelete
  • BulkMerge
  • 等等。

您可以使用此库轻松批量更新具有不同值的多个实体:

public virtual void Update(params T[] items)
{
   using (var context = new Entities())
   {
       context.BulkUpdate(items);
   }
}