实体框架6:给定多重约束,相应的“CProperty”也必须处于“已删除”状态

时间:2013-02-13 15:24:26

标签: c# .net sql database-design

我尝试使用以下设计模型代码。 第一次呼叫SaveChanges()成功但不是第二次呼叫时。

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

有人能为我提供解决方案吗?

enter image description here

        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();
        }

1 个答案:

答案 0 :(得分:2)

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

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