紛らわしいタイトルで申し訳ありませんが、一言で言えば簡単ではありません。
コード ファースト モデルで多対多の関係を定義する際に問題があります。これは、コード ファースト フレームワークを使用する初めてのプロジェクトであり、助けが必要です。
2 つのモデルを取得Item
しTrade
ました。その背後にある物語は、私がアイテム取引ウェブサイトを構築しているということです。
取引には、人物 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」で競合が発生しました。
どんな助けでも大歓迎です、ありがとう!