簡體   English   中英

InvalidOperationException與刪除相關的對象

[英]InvalidOperationException with delete related objects

我試圖刪除屬於一個“用戶”的所有“用戶組”,然后添加新的“用戶組”。

    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

您無法在迭代集合的同時修改它。 您可以建立要刪除的項目的集合,並在foreach循環后將其從關系中刪除,也可以使用如下計數器向后遍歷該集合:

   for (int i = uo.Usergroups.Count - 1; i >= 0; i--)
   {
        uo.Usergroups.Remove(uo.Usergroups.ElementAt(i));
   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM