【发布时间】:2023-02-02 23:43:10
【问题描述】:
我有一个类似于以下的类:
public class MainClass
{
public int Id { get; set; }
public ChildType ChildType { get; set; }
public IChildData? Data { get; set; }
}
ChildType 是一个枚举。有一些(但不是全部)值的 IChildData 的实现。
我正在为映射配置而苦苦挣扎。
我认为我应该使用鉴别器,但我不知道如何判断鉴别器是针对属性而不是MainClass。
这行不通:
var config = modelBuilder.Entity<MainClass>();
config.HasDiscriminator(x => x.ChildType).HasValue<SomeChild>(ChildType.SomeValue);
它抱怨 SomeChild 类没有继承 MainClass。我怎样才能让英孚明白这是为了孩子的财产?
【问题讨论】:
-
不应该是
var config = modelBuilder.Entity<SomeBaseImplementorOfIChildData>();之类的吗? -
还有什么是所需的表结构?
MainClassfk 到IChildData数据表了吗? -
但是 ChildType 属性在“MainClass”中而不是孩子?
-
MainTainable 有一个 Child Type 列,Sum Child 表有一个到 MainTable 的外键。
-
那么这种关系是一对多的(一个 MainClass 到多个子数据)?