我有一个按钮,表中包含用户列表ButtonUsers。Button使用用户列表更新父级,并且UserList应更新所有其他按钮。并非每次都是如此,因此每个按钮都有自己的列表。问题是我可能有 5000 个按钮,每个按钮都应该更新。
我尝试一次拉动所有按钮,然后拉动必要的用户,并将每个按钮状态设置为已修改。当我迭代完所有按钮后,调用SaveChanges().
public bool UpdatePreviousButtons(Button button, List<string> userList)
{
var buttons = fieldRepo.GetFieldsCreatedFrom<Button>(button.ID);
var users = fieldRepo.GetUsersFromIDs(userList);
foreach(var btn in buttons)
{
btn.UserList = users;
fieldRepo.UpdateFieldGeneric<Button>(btn);
}
return fieldRepo.Commit();
}
问题似乎是它不会批量插入记录,而是每次调用插入一条记录。这不可避免地会导致超时,并且需要很长时间。
我一直在考虑用 手动完成Context.Database.ExecuteSqlCommand()。使用实体框架有更好的方法吗?
慕标5832272
相关分类