配置許多與主鍵一對多的關係太這就是我想實現:如何在它
modelBuilder.Entity<ApplicationUser>()
.HasMany(u => u.Following)
.WithMany(u => u.Followers)
.Map(m =>
{
m.ToTable("FollowTables");
m.MapLeftKey("UserId");
m.MapRightKey("FollowId");
});
在應用程序的用戶類別,我已經配置以下和追隨者是這樣的:
public ICollection<ApplicationUser> Following { get; set; }
public ICollection<ApplicationUser> Followers { get; set; }
如下表應該是這樣的:
public class FollowTable
{
[Key]
public int autoId { get; set; }
public int UserId { get; set; }
public int? FollowId { get; set; }
}
自動識別是主鍵和用戶ID和FollowId都是外鍵ApplicationUser類其中userid是用戶自己的ID和FollowId是哪個用戶following.Its數據的ID可以如下:
autoId UserId FollowId
1 4 11
2 4 12
3 4 13
現在,我的問題是,當我通過PMC數據庫更新,它創建兩個數據庫表,一個是帶有列的FollowTables(USerId,FollowId),另一個是FollowTables1(autoId,USerId,FollowId)。
如果我刪除此行從applicationDbContext類:
public DbSet<FollowTable> FollowTables { get; set; }
那麼它的創建只有一張桌子,但沒有主鍵。
請別人幫我。如何正確配置UserId和followId作爲外鍵,這兩個應映射到ApplicationUser的Id。 我想要使用這些收藏的追隨者和追隨者,以便做到這一點。
你可以顯示你的'ApplicationUser'類嗎?可能會有一些會議事情發生。另外,你爲什麼期望'FollowId'是空的? –
public class ApplicationUser:IdentityUser { public string Address {get;組; } public ApplicationUser() { // this。FollowTables = new HashSet (); } // public virtual ICollection FollowTables {get;組; } //計算屬性 public ICollection 正在關注{get;組; } public ICollection 關注者{get;組; } –
duke