我有 3000 位父母需要大规模更新。首先,我认为我会使用 SQL Server 进行大规模更新并为其提供一个数组,但事实证明该数组太长,并且我收到错误,即我为WHERE IN ()
子句提供的字符串将被截断。
所以我回到了 EF,但无论我做什么,更改都不会保存。当我检查本地人时,我看到了对象中的更改,但是db.SaveChages()
完成后,更改不在数据库中。
我在这里一无所知。
public void UpdateParentStatus(List<int> primaryParentIds)
{
//string queryArray = string.Join(",", primaryParentIds);
//db.Database.ExecuteSqlCommand("UPDATE Parent SET IsPrimary = 1 WHERE ParentId IN ({0})", queryArray);
foreach (int id in primaryParentIds)
{
var parentResult = pList.Single(p => p.ParentId == id);
parentResult.IsPrimary = true;
}
db.SaveChanges();
}