有没有办法将某个字段映射到Entity Framework中的多个列?具体方案是使用具有Table per Type层次结构的继承。我希望某个字段出现在基本类型表和具体类型表中。
示例:
abstract class BaseEntity
{
int id { get; set; }
DateTime createDate { get; private set; }
string TypeName { get; private set; }
}
public class Person : BaseEntity
{
int id { get; set; }
DateTime createDate { get; private set; }
string TypeName { get; private set; }
string FirstName {get; set;}
string LastName {get; set;}
DateTime DateOfBirth {get; set;}
}
基类表
int ID,
DateTime createDate,
varchar TypeName
具体类表
int ID,
DateTime createDate,
varchar FirstName,
varchar LastName,
DateTime DateOfBirth
这两个表中都没有ID,因为它是主键。但是,创建日期被视为单独的数据。
这样做的主要原因是数据库维护和可支持性。我知道重复数据不是一个好习惯。这只适用于少数几个领域。
答案 0 :(得分:0)
不可能这不可能,这也不是很好的C#代码,因为你很可能会发出一条警告,说CreateDate正在隐藏一个继承的属性。
您可以使用数据库触发器解决此问题,该数据库触发器在派生表中的插入/更新完成后插入/更新值。