C# 如何使用ApplyCurrentValue更新整个实体列表?
嗯 以下是我如何更新单个对象:C# 如何使用ApplyCurrentValue更新整个实体列表?,c#,sql,entity-framework,C#,Sql,Entity Framework,嗯 以下是我如何更新单个对象: public void UpdateRespondent(Respondent changed) { var respondent = db.Respondents.FirstOrDefault(r => r.RespondentId == changed.RespondentId); db.Respondents.ApplyCurrentValues(changed); db.SaveChanges(); } 如果发生更改,这将
public void UpdateRespondent(Respondent changed)
{
var respondent = db.Respondents.FirstOrDefault(r => r.RespondentId == changed.RespondentId);
db.Respondents.ApplyCurrentValues(changed);
db.SaveChanges();
}
如果发生更改,这将调用1 select和1 update
现在,如果我有一个包含数百个的列表,我该怎么做,在循环中的每个列表上调用UpdateRespondentchanged?这将导致数百个*2 sql语句
还是有更有效的方法
谢谢。EF不支持批量更新。您可以研究EntityFramework扩展库的使用—我见过其他成功使用它的人: 上面链接中的代码sniplet:
//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"});
或者,您可以直接使用ADO.Net并调用存储的proceudre
祝你好运。谢谢,伙计,我会看看的。