我有 2 个继承自同一个基类的子类。它们都映射回同一张表。如果 db 表中的 field1 为 null 而 field2 不为 null,则它是一个子类。如果 field1 不为 null 而 field 2 为 null,则它是另一个子类。
我不断收到错误消息。实际消息是:“列名‘鉴别器’无效。” 它实际上说的是鉴别器......我没有把它作为一个通用术语。
这是我的代码示例:
DatabaseTableA
TableAId ( PK , int )
FooId ( FK , int , null )
BarId ( FK , int , null )
Prop1 ( int )
Prop2 ( int )
Prop3 ( int )
public abstract class BaseClass
{
public int Prop1{ get; set; }
public int Prop2{ get; set; }
public int Prop3{ get; set; }
}
public class Foo : BaseClass
{
public int FooId{get;set;}
}
public class Bar : BaseClass
{
public int BarId{get;set;}
}
internal class BaseClassMap : EntityTypeConfiguration<BaseClass>
{
public BaseClassMap()
{
ToTable("DatabaseTableA");
HasKey( e => e.TableAId);
Map<Foo>( m => m.Requires("BarId").IsDBNull());
Map<Bar>( m => m.Requires("FooId").IsDBNull());
}
}
如何正确映射?