0
我有多個較小的版本映射到單個數據庫表代碼爲第一EF5繼承
如 UserBrief類類:
[Table("Users")]
public partial class UserBrief
{
[Key]
public int EmployeeID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
UserAdmin類
[Table("Users")]
public partial class UserAdmin : UserBrief
{
public int RoleID { get; set; }
}
UserHR類
[Table("Users")]
public partial class UserHR : UserBrief
{
public string EmailAddress { get; set; }
public string Phone { get; set; }
}
用戶類
[Table("Users")]
public partial class User
{
[Key]
public int EmployeeID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int RoleID { get; set; }
public string EmailAddress { get; set; }
public string Phone { get; set; }
}
我有多個限界上下文。根據我在上面使用的類的上下文的功能。
如果我在上下文中添加單個類並忽略所有其他類,那麼它工作正常。
e.g
public DbSet<UserHR> UserHRs { get; set; }
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
modelBuilder.Ignore<UserBrief>();
modelBuilder.Ignore<UserAdmin >();
modelBuilder.Ignore<User>();
}
現在,如果我加入UserBrief和UserHRs 它給錯誤「無效列名 '鑑'」爲EF假定這是每一個分層表(TPH)的方法。
我一直在尋找解決方案,但無法找到如何做到這一點。
任何想法? 在此先感謝。
感謝傑克的回覆。 我試圖與上述例如它給我一個錯誤, 的實體類型「UserAdmin」和「UserHR」不能共享表「用戶」,因爲它們不是在同一類型層次或沒有有效的一對一國外密鑰關係與它們之間的主鍵匹配。 – user2011011
啊,UserAdmin和UserHR應該映射到他們自己的表中,所以保留'[Table(「Users」)]'會導致這個錯誤。我應該注意,'UserHR'和'UserAdmin'的EmployeeID鍵應該加上'[ForeignKey(「UserBrief」)]'來修正代碼中的映射問題。 – Jake