我剛開始爲我的下一個項目使用實體框架,並且我正在努力滿足以下要求。我有以下ApplicationUser
類:與單個表的多重關係實體框架asp.net MVC
public class ApplicationUser : IdentityUser
{
public string Name { get; set; }
public int CompanyId { get; set; }
public virtual Company Company { get; set; }
}
我有兩個類,從該類固有:
public class TrainerUser : ApplicationUser
{
public virtual ICollection<ClientUser> Clients { get; set; }
}
public class ClientUser : ApplicationUser
{
public string TrainerId { get; set; }
public TrainerUser Trainer { get; set; }
}
公司類看起來是這樣的:
public class Company
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<TrainerUser> Trainers { get; set; }
public virtual ICollection<ClientUser> Clients { get; set; }
}
我不能弄清楚我如何使用流利的API在ApplicationUsers
表中不包含3個不同的companyId列。
目前,我有以下的流暢API配置:
modelBuilder.Entity<TrainerUser>().HasRequired(c => c.Company).WithMany(t => t.Trainers).HasForeignKey(c => c.CompanyId);
modelBuilder.Entity<ClientUser>().HasRequired(c => c.Company).WithMany(c => c.Clients).HasForeignKey(c => c.CompanyId);
任何人都可以點我在正確的方向?
您是否嘗試將導航器移至公司當前在應用程序用戶中的其他繼承類? –
如果'ApplicationUser'不是你的應用程序中的實體,那麼你可以讓這個類抽象,我認爲它應該解決這個問題,我會先嚐試。 – SOfanatic