0

以下の設計モデルで以下のコードを試してみました。最初の呼び出しSaveChanges()は成功しますが、2番目の呼び出しは成功しません。

私はすでにこれに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();
        }
4

1 に答える 1

2

同じCKeyインスタンスを の 100 個のインスタンスに関連付けようとしていますCPropertyが、多重度のグラフによると、 の特定のインスタンスはCKey最大 1 個にしか関連付けることができませんCProperty

CKeyループの反復ごとにの新しいインスタンスを作成するか、スキーマを変更してください。

于 2013-02-13T17:03:06.743 に答える