一括更新する必要がある 3000 人の親がいます。最初に、SQL サーバーを使用して一括更新を行い、配列をフィードしようと考えましたが、配列が長すぎることが判明し、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();
}