在大多数情况下,我们可以将表中的字段映射到属性,或者我们可以使用条件映射映射它,但不能同时映射它们。唯一的例外是如果条件设置为Is NotNull
,那么我们也可以映射到列。
a)这就是为什么我们只能映射一个DB列的原因 - 也就是说,如果允许字段同时具有属性映射和条件映射,那么属性映射将告诉EF检索所有表行,条件映射会告诉EF只检索那些满足条件的行吗?!
b)如果我在 a)下的推理是正确的,那么当条件设置为Is NotNull
时,为什么允许字段同时具有两个映射?为什么不会造成冲突?
谢谢
答案 0 :(得分:2)
使用条件进行映射NotNull具有特殊含义,因为它需要在模型中进行后续更改。模型中的映射属性不能为空。因此,数据库中的列可以为空,您的映射条件会过滤所有具有空值的记录,并且您的属性始终只接收具有非空值的记录。此外,您永远不能为该属性指定null。
如果是具有值相等的共同条件,则无法执行此特殊行为。