收集被修改;枚举操作可能无法执行。例外

时间:2012-09-08 08:54:34

标签: c# entity-framework exception

此代码给我和例外

收藏被修改;枚举操作可能无法执行

我使用Entity Framework来处理数据

            foreach (OfflineMessage omc in _offMsgs)
            {

                var OimDB = new OimDBEntities();

                if (omc.MsgTo == e.MessageData.ToHeader.Uri)
                {
                    var offlineMessage = new OfflineMessage
                    {
                        Delivered = false,
                        MsgContent = omc.MsgContent,
                        MsgFrom = omc.MsgFrom,
                        MsgTime = omc.MsgTime,
                        MsgTo = omc.MsgTo,
                        ID = OimDB.OfflineMessages.NextId(f => f.ID)

                    };

                    oimRepository.InsertOIM(offlineMessage);

                    //InsertData(omc.MsgFrom, omc.MsgTo, omc.MsgContent, omc.MsgTime);
                }
            }
            _toHeader = e.MessageData.ToHeader.Uri;
        }

1 个答案:

答案 0 :(得分:3)

foreach (OfflineMessage omc in _offMsgs)
                {
                    if (omc.MsgTo == _toHeader)
                    {
                        _offMsgs.Remove(omc);
                    }
                }

您正在迭代它时从集合中删除元素。你不能这样做。而不是删除,将它们添加到临时列表,并在foreach循环后,删除您的项目。