我正在玩EF Code First,需要一些幫助。實體框架代碼首先 - 多對多外鍵問題
用戶可以創建許多帖子。
用戶可以推薦很多文章
文章可以有很多用戶推薦。
鑑於此代碼:
public class User
{
public int UserID { get; set; }
public string Name { get; set; }
public virtual ICollection<Post> Posts { get; set; }
public virtual ICollection<Post> Recommendations { get; set; }
}
public class Post
{
public int PostID { get; set; }
public int UserID { get; set; }
public virtual User User { get; set; }
public virtual ICollection<User> RecommendingUsers { get; set; }
}
modelBuilder.Entity<Post>()
.HasMany(x => x.RecommendingUsers)
.WithMany(x => x.Recommendations)
.Map(x => x.MapLeftKey("PostID")
.MapRightKey("UserID")
.ToTable("Recommendations"));
我結束了在Post表一個額外的 「User_UserID」 一欄,它是一個使用外鍵:
帖子ID(PK,INT,不空)
用戶ID(INT非空)
User_UserID(FK,INT,NULL)
爲什麼是不是使用用戶ID爲t他外鍵?
你確定。我剛剛使用了你的代碼,它按預期工作。 – 2011-05-12 19:29:28
我甚至嘗試手動刪除數據庫並讓EF重新創建它。我仍然以User_UserID列結束。那麼,你只有你的PostID和UserID列? – Matador1006 2011-05-12 19:42:20
是的。我只將所有ID重命名爲Id。它的工作。 – 2011-05-12 19:45:25