任何人都可以猜到实体框架的开发人员为什么不包含UPDATE
和DELETE
语义?
我有一个整数ID列表。我需要更新所有相应的行。不返回原始SQL或存储过程,我能做的最好的事情是加载每个匹配的行并更新对象,然后保存它。
这需要太长时间。是否有一些很酷的方法可以在更高效的最新版本的Entity Framework中处理这个问题?
答案 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"});