在实体框架中更新或删除仍然没有效率的方法?

时间:2014-03-25 17:15:24

标签: sql-server entity-framework

任何人都可以猜到实体框架的开发人员为什么不包含UPDATEDELETE语义?

我有一个整数ID列表。我需要更新所有相应的行。不返回原始SQL或存储过程,我能做的最好的事情是加载每个匹配的行并更新对象,然后保存它。

这需要太长时间。是否有一些很酷的方法可以在更高效的最新版本的Entity Framework中处理这个问题?

1 个答案:

答案 0 :(得分:1)

开源“Entity Framework Extended Library”寻求执行批量更新等。

以下是他们的github页面的一个例子:

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

//example of using an IQueryable as the filter for the update
var users = context.Users.Where(u => u.FirstName == "firstname");
context.Users.Update(users, u => new User {FirstName = "newfirstname"});