首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有删除相关对象的InvalidOperationException

带有删除相关对象的InvalidOperationException
EN

Stack Overflow用户
提问于 2010-02-15 21:32:21
回答 1查看 275关注 0票数 0

我正在尝试删除属于一个“用户”的所有“用户组”,然后添加新的“用户组”。

代码语言:javascript
复制
    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();

    }

如果这里有一个以上的用户组,它会抛出一个异常:

代码语言:javascript
复制
        foreach(Usergroup ug in uo.Usergroups)
        {

            uo.Usergroups.Remove(ug);
        }

我该如何解决这个问题?

/M

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-15 21:48:09

你不能在遍历集合的时候修改它。您可以构建一个要移除的项的集合,并在foreach循环之后将它们从关系中移除,或者使用计数器向后迭代集合,如下所示:

代码语言:javascript
复制
   for (int i = uo.Usergroups.Count - 1; i >= 0; i--)
   {
        uo.Usergroups.Remove(uo.Usergroups.ElementAt(i));
   }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2266224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档