我正在开发一个实现实体框架6代码优先模式的Web应用程序。 在我的项目中,由于某些原因,我已经使用TPH,TPT和TPC模式完成了表继承,但现在我遇到了这样的问题:
1)我创建了一个具有一些属性的基表表1,其中一些是" key"用于标识继承类型的列
public class Table1 : BaseEntity
{
public Table1()
: base()
{
}
public int Table1Id { get; set; }
public int ItemId { get; set; }
public string TableName { get; set; }
public string ColumnName { get; set; }
public string Value { get; set; }
}
我必须在独立实体的某些属性中实现此基表,例如:
public class OtherEntity {
public OtherEntity()
: base()
{
...
}
...
public virtual ICollection<Table1> Table1Ref1 { get; set; }
public virtual ICollection<Table1> Table1Ref2 { get; set; }
public virtual ICollection<Table1> Table1Ref3 { get; set; }
}
public class OtherEntity1 {
public OtherEntity1()
: base()
{
...
}
...
public virtual ICollection<Table1> Table1Ref1 { get; set; }
public virtual ICollection<Table1> Table1Ref2 { get; set; }
public virtual ICollection<Table1> Table1Ref3 { get; set; }
}
理想的实现是我可以为所有权限使用相同的类(实体)和表,并且在映射中我将指定,例如,列Table1Ref1将获得TableName的值为&#39; OtherEntity&#39;和ColumnName的值为&#39; Ref1&#39;和实体键值的ItemId;列Table1Ref2具有相同的TableName,ItemId和ColumnName的值为&#39; Ref2&#39;等。
是否可以实施此解决方案?