0

紛らわしいタイトルで申し訳ありませんが、一言で言えば簡単ではありません。

コード ファースト モデルで多対多の関係を定義する際に問題があります。これは、コード ファースト フレームワークを使用する初めてのプロジェクトであり、助けが必要です。

2 つのモデルを取得ItemTradeました。その背後にある物語は、私がアイテム取引ウェブサイトを構築しているということです。

取引には、人物 A から人物 B に 1 つまたは複数の商品が送られ、人物 B から人物 A に 1 つまたは複数の商品が返送され、取引が完了します。

1 つのアイテムは 1 つのトレードのみに属しますが、1 つのトレードは複数のアイテムを持つことができます。

これが、これまでの私のモデルの外観です。

アイテム

public class Item
{
    public int ItemId { get; set; }
    public string Name { get; set; }
    public int TradeId { get; set; }

    [ForeignKey("TradeId")]
    public virtual Trade Trade { get; set; }
}

トレード

public class Trade
{
    public int TradeId { get; set; }

    public virtual ICollection<Item> ItemsToSend { get; set; }
    public virtual ICollection<Item> ItemsToReturn { get; set; }
}

しかし、実行しようとするupdate-databaseと、次のエラーが発生します。

System.Data.SqlClient.SqlException: INSERT ステートメントが FOREIGN KEY 制約 "FK_dbo.Items_dbo.Trades_TradeId" と競合しました。データベース「MyDB」、テーブル「dbo.Trades」、列「TradeId」で競合が発生しました。

どんな助けでも大歓迎です、ありがとう!

4

2 に答える 2