EntityFrameworkとのキー制約のマージ

entity-framework-core

質問

私はシンプルなピザwebbshopを構築しようとしている生徒です。私はEntityframeworkを使用してデータベースを構築しています。私が得るエラーメッセージはこれです:

 The MERGE statement conflicted with the FOREIGN KEY constraint "FK_Products_Categories_CategoryID". The conflict occurred in database "TomasosPizzeria", table "dbo.Categories", column 'CategoryID'.
The statement has been terminated.

私はグーグルで、プロパティの名前を前後に変更するだけで、この1つだけを解決しようとしました。ここに私のクラスがあります:

public class Product
{
    public int ID { get; set; }
    public string ProductName { get; set; }
    public int ProductPrice { get; set; }
    public string Ingridients { get; set; }

    //--

    public List<OrderDetail> OrderDetails { get; set; }


    [ForeignKey("Categories")]
    public int CategoryID { get; set; }
    public virtual Category Categories { get; set; }
}




public class Category
    {
        public int CategoryID { get; set; }
        public string CategoryName { get; set; }

        List<Product> Products { get; set; }

    }

私はsomテスト値を設定するためにDbInitializerを使用しています。製品オブジェクトに対応する値を持つカテゴリを与えることに問題がありました。

 var categories = new Category[]
             {
                new Category{CategoryName="Pizza"},
                new Category{CategoryName="Pasta"},
                new Category{CategoryName="Sallad"},

             };


   var products = new Product[]
    {
        new Product{ProductName="Äcklig Calzone", Ingridients="Gamla tomater, möglig ost, trötta oliver, Unken skinka", ProductPrice=150},
        new Product{ProductName="Italiensk skit", Ingridients="Proscutti, halvfärdig mozzarella, trötta oliver, skämd vattnig proscutti", ProductPrice=250},
        new Product{ProductName="La bussola", Ingridients="Äckliga tomater, giftiga räkor, levande musslor, rutten skinka",CategoryID = 2,<--Here-- ProductPrice = 105 }


    };

    foreach (Product s in products)
    {
        context.Products.Add(s);
    }
    context.SaveChanges();

私はすべての助けに感謝しています。私のコードを見たいかどうか教えてください。

受け入れられた回答

他の2つの製品にCategoryIDを与えて解決しました。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ