請原諒我令人困惑的標題,但不簡單地說它簡而言之。代碼第一對一與兩個相同的實體
我在定義我的代碼優先模型中的多對多關係時遇到了問題。 這是我第一個使用代碼第一個框架的項目,我需要一些幫助。
我有兩個型號,Item
和Trade
。這背後的故事就是建立一個物品交易網站。
交易涉及從A人發送給B人的一件或多件物品,一件或多件物品從B人發回A人,完成交易。
一個項目只屬於一個交易,但一個交易可以有多個項目。
這就是我的模型看起來如何。
項目
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.Trade」,列'TradeId'。
任何幫助非常感謝,謝謝!
嘗試刪除數據註解。或者,如果您的數據庫尚未填充,請將其放下並重新創建。 – Tico
看起來你的數據庫已經有了數據,並且遷移由於約束而失敗。 –
謝謝大家。但我認爲'Global.asax'中的這一行確保數據庫正在被丟棄。 'Database.SetInitializer(新DropCreateDatabaseIfModelChanges());' –
Martin