我有多个较小版本的类映射到单个数据库表
例如 UserBrief 类:
[Table("Users")]
public partial class UserBrief
{
[Key]
public int EmployeeID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
用户管理类
[Table("Users")]
public partial class UserAdmin : UserBrief
{
public int RoleID { get; set; }
}
用户HR类
[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; }
}
我有多个有界上下文。根据我在上面的类中使用的上下文的功能。
如果我在上下文中添加单个类并忽略所有其他类,那么它工作正常。
例如
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) 方法。
我一直在寻找解决方案,但找不到如何做到这一点。
有任何想法吗?提前致谢。