【问题标题】:DbContext.Add error,Collection was modified; enumeration operation may not executeDbContext.Add 错误,集合被修改;枚举操作可能无法执行
【发布时间】:2013-02-11 12:18:37
【问题描述】:

我正在寻找答案,但我没有找到任何答案。所以当我在context.Customers 中添加第二个元素时,我得到一个异常:

集合已修改;枚举操作可能无法执行。

为什么?任何帮助将不胜感激。

我的代码:

public class CompanyInitalizer : DropCreateDatabaseAlways<CompanyContext>
{
    protected override void Seed(CompanyContext context)
    {
        var contacts = new List<Contact>
        {
            new Contact {
                Vezetéknév="Nagy",
                Keresztnév="János",
                Beosztás="alkalmazott",
                Email="nagy.janos@default1.com",
                Telefonszám="06361254452"
            },

            new Contact {
                Vezetéknév="Kiss",
                Keresztnév="Ferenc",
                Beosztás="alkalmazott",
                Email="kiss.ferenc@default1.com",
                Telefonszám="06361254452"
            }
        };

       contacts.ForEach(d => context.Contacts.Add(d));
       context.SaveChanges();

        var events = new List<Event>
        {
            new Event {
                Időpont=DateTime.Parse("12/31/2010"), 
                Típusa="Tárgyalás",
                Leírás="Éves költségvetés"
            },

            new Event {
                Időpont=DateTime.Parse("12/31/2010"), 
                Típusa="Tárgyalás",
                Leírás="Éves költségvetés"
            }
        };

      events.ForEach(d => context.Events.Add(d));
      context.SaveChanges();


        var customers = new List<Customer>
        {
            new Customer {
                Cégnév ="Default1.Kft",
                Irányítószám= 1012,
                Város="Budapest",
                Cím="Tavasz utca 54.",
                Weblap="http://www.default1.com",
                Telefonszám="06361254452",
                Contacts= contacts,
                Events=events
            },

            new Customer {
                Cégnév ="Default2.Kft",
                Irányítószám= 2440,
                Város="Százhalombatta",
                Cím="Tél utca 34.",
                Weblap="http://www.default1.com",
                Telefonszám="063623254452",
                Contacts=contacts,
                Events=events
            }
        };


    customers.ForEach(d => context.Customers.Add(d)); //Throw exception here!
    context.SaveChanges();           
    }
}

【问题讨论】:

  • stackoverflow.com/questions/7536459/… - 这可能对你有帮助
  • 很可能与 ssilas 提到的问题相同。一些循环引用 EF 可能不喜欢。另一个帖子有很多细节。建议你移动回答 SSILAS
  • 这个不行,怎么解决?

标签: c# asp.net-mvc-3 entity-framework


【解决方案1】:

问题解决了! 添加到客户的相同实体。我创建新的联系人和事件实体并添加到客户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多