在我看來,像ForeignKey
屬性不是爲我工作,但我想我使用它錯了;)實體框架代碼優先外鍵問題
它很容易與代碼解釋:
public class BaseCard
{
public int Id {get ; set; }
public int BaseCardId { get; set; }
public List<Skill> Skills { get; set; }
}
public class Skill
{
public int Id { get; set; }
public int BaseCardId { get; set; }
[ForeignKey("BaseCardId")]
public BaseCard BaseCard { get; set; }
}
當我嘗試填補種子法這些對象,我得到這個錯誤:
INSERT statement conflicted with the FOREIGN KEY constraint "FK_dbo.Skills_dbo.BaseCards_BaseCardId". The conflict occurred in database "Database", table "dbo.BaseCards", column 'Id'.
在我看來,像ForeignKey
在Skill
次嘗試指向的BaseCards
,而不是BaseCardId
列Id
列,我想不通爲什麼..
如果我嘗試刪除的BaseCard
「正常」 Id
屬性,並設置BaseCardId
爲PK(帶屬性[Key]
),我收到以下錯誤:
Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager entries.
有誰知道我能得到這個代碼的工作,所以從Skill
類物業BaseCardId
將指向BaseCard
的BaseCardId
財產,而不是顯然是Id
財產?
在此先感謝!
爲什麼你的BaseCard對象有Id和BaseCardId字段? – Sefa
@vgSefa我將BaseCardId設置爲某個數字。我想,這個ID是自動生成的。但它需要是一個具體的數字。是否可以將Id設置爲特定的數字? – Rob
@vgSefa我試圖將Id而不是BaseCardId設置爲我需要的數字,不幸的是,這不起作用。 – Rob