我正在尝试删除属于一个“用户”的所有“用户组”,然后添加新的“用户组”。
public void SaveUserUsergroups(int userID, int[] UsergroupID)
{
User uo = _entities.Users.Where(x => x.UserID == userID).First();
uo.Usergroups.Load();
foreach(Usergroup ug in uo.Usergroups)
{
uo.Usergroups.Remove(ug);
}
int _currentUsergroupID;
for (int i = 0; i < UsergroupID.Count(); i++)
{
_currentUsergroupID = UsergroupID[i];
uo.Usergroups.Add(_entities.Usergroups.Where(ug => ug.UsergroupID == _currentUsergroupID).First());
}
_entities.SaveChanges();
}如果这里有一个以上的用户组,它会抛出一个异常:
foreach(Usergroup ug in uo.Usergroups)
{
uo.Usergroups.Remove(ug);
}我该如何解决这个问题?
/M
发布于 2010-02-15 21:48:09
你不能在遍历集合的时候修改它。您可以构建一个要移除的项的集合,并在foreach循环之后将它们从关系中移除,或者使用计数器向后迭代集合,如下所示:
for (int i = uo.Usergroups.Count - 1; i >= 0; i--)
{
uo.Usergroups.Remove(uo.Usergroups.ElementAt(i));
}https://stackoverflow.com/questions/2266224
复制相似问题