【问题标题】:Entity Framework 6 : Given multiplicity constraints, a corresponding 'CProperty' must also in the 'Deleted' state实体框架 6:给定多重约束,相应的“CProperty”也必须处于“已删除”状态
【发布时间】:2013-02-14 01:03:06
【问题描述】:

我使用以下设计模型尝试了以下代码。 第一次调用SaveChanges() 成功,但第二次调用失败。

我已经为此工作了 18 个小时,但无法弄清楚问题所在。 特别是当我可以使用 MSSQL 服务器资源管理器手动实现代码目标时!

谁能给我一个解决方案?

        var mc = new Model1Container1();

        mc.Categories.Add(new Category() { Text = "Laptop" });
        mc.Categories.Add(new Category() { Text = "TV" });
        mc.SaveChanges();

        var cat = mc.Categories.Where(c => c.Text == "Laptop").FirstOrDefault();
        CKey ck = new CKey() { Key = "RAM" };
        cat.CKeys.Add(ck);

        for (int i = 1; i < 100; i++)
        {
            var ia = new Item() { Text = "MSI GX780-R", Category = cat };

            ia.CProperties.Add(new CProperty() { Value = "4GB", CKey = ck });

            mc.Items.Add(ia);
            mc.SaveChanges();
        }

【问题讨论】:

  • “第一次调用成功但第二次失败” - 第二次调用如何不成功?
  • @JeanHominal mc.SaveChanges() 在 for 循环中。 i=1 的第一个循环成功,但 i=2 出现错误。

标签: c# .net sql database-design


【解决方案1】:

您正试图将同一 CKey 实例关联到 CProperty 的 100 个实例,但根据多重性图,CKey 的给定实例最多只能关联到 1 个 CProperty

在循环的每次迭代中创建CKey 的新实例,或者修改您的架构。

【讨论】:

  • 天啊..真是个白痴..这是一个可怕的错误!谢谢JEAN..你为我节省了很多时间。
猜你喜欢
  • 2015-03-04
  • 1970-01-01
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
  • 1970-01-01
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多