類:多對多主鍵
public class BranchAds
{
[Key, Column(Order = 0)]
[ForeignKey("branch")]
public int branch_id { get; set; }
[Key, Column(Order = 1)]
[ForeignKey("ad")]
public int advertisement_id { get; set; }
[JsonIgnore]
public virtual Branch branch { get; set; }
public virtual Advertisement ad { get; set; }
[JsonProperty("start_time")]
public DateTime start_time { get; set; }
[JsonProperty("end_time")]
public DateTime end_time { get; set; }
public DateTime date { get; set; }
}
此錯誤:
Violation of PRIMARY KEY constraint 'PK_dbo.BranchAds'. Cannot insert duplicate key in object 'dbo.BranchAds'. The duplicate key value is (1, 26).
發生在我嘗試使用相同的密鑰插入另一BranchAds ..嗯,我應該因爲從理論上講,這是一個很多到很多(聯結)表。然而數據庫似乎沒有意識到這一點。
爲什麼我這樣做?因爲我需要在許多表中的自定義字段。
我能做些什麼來解決這個問題?在BranchAds類中不添加[Key]
。
它不應該有它自己的BranchAdsID? – shole
沒有原因?創建多對多不需要自己的'id'。舉一個例子,只要兩個表引用彼此作爲'ICollections' ... – user1027620
,因爲通常對於外鍵的每對(x,y),它只能出現一次。現在你需要重複幾次,因爲自定義字段或其他什麼,那麼你必須使用某些東西來區分具有相同對值的兩個記錄? – shole