1
我使用實體框架4.3具有設計簡單:使用多列(複合)主鍵包含外鍵關係
public class Post
{
[Key]
public int ID { get; set; }
public string Text { get; set; }
public HashSet<PostTag> Tags { get; set; }
}
public class PostTag
{
public Post Post { get; set; }
[Key, Column(Order=0)]
[ForeignKey("Post")]
public int PostID { get; set; }
[Key, Column(Order=1)]
[MaxLength(50)]
public string Tag { get; set; }
}
所以,你可以看到一個帖子有多個標籤,而那些標籤使用PostID和標籤的複合主鍵。
當我運行update-database
我得到:
Cannot define PRIMARY KEY constraint on nullable column in table 'PostTag'.
我已經試過應用[必需]屬性POST和帖子ID。我試着將ForeignKey屬性放在FK關係的另一邊。我已經嘗試應用Post的InverseProperty屬性(它將錯誤更改爲模糊的NullReferenceException - 這看起來像一個錯誤)。
通過刪除被忽略的key屬性,清除__MigrationHistory表,然後使用Update-Database創建初始遷移,您可以解決EF 4.3.1中的錯誤(如果您剛剛在4.3上,請先升級)初始-IgnoreChanges以最新的方式讓它保持最新狀態。事實上,你可以按照預期遷移。 – 2012-03-01 22:33:27