3

在 Table-Per-Hierachy 场景中,是否可以区分可能值的列表?

例如对于类型Color, DarkColor, LightColor

就像是

 Map<DarkColor>(m => m.Requires("TheColor").HasValue(Red || Blue)
 Map<LightColor>(m => m.Requires("TheColor").HasValue(Yellow || White)

糟糕的例子,但希望你能明白!

4

2 回答 2

1

不,这是不可能的。

实体框架仅支持使用条件的交集进行映射,而不是条件的联合。
您可以在设计器 [1]和 EDMX 语法 [2] 中看到这一点。
* 代码优先应该具有相同的映射能力。

[2] 如果您右键单击 edmx 文件并选择“打开方式...”->“自动编辑器选择器 (XML)”并尝试手动编辑映射条件,您将看到(从智能感知)不是在条件之间输入“OR”的选项。

于 2011-06-13T15:30:58.790 回答
0

首先,我不确定你想要的是否可能,EF想要处理鉴别器列,并且根据类类型,它想设置鉴别器值,在这种情况下,它会如何将值设置为可能的值。从数据库加载它时没有区别,但在尝试将其序列化到数据库时有点问题。

1-您是否尝试过为每个可能的值做多个映射:) 您可能会收到一个错误,说 DarkColor 已经被映射。

2-第二个建议是添加一个 [NotMapped] ColorWeight 属性,并根据颜色返回深色或白色,并将此属性用作鉴别器字段,但我猜鉴别器字段应该存在于表中。

于 2011-05-13T11:32:36.287 回答