Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 我不知道的事';我不太了解条件映射_Entity Framework - Fatal编程技术网

Entity framework 我不知道的事';我不太了解条件映射

Entity framework 我不知道的事';我不太了解条件映射,entity-framework,Entity Framework,在大多数情况下,我们可以将表中的字段映射到属性,也可以使用条件映射对其进行映射,但不能同时映射两者。唯一的例外是,如果条件设置为的值为NotNull,那么我们也可以映射到列 a) 这就是为什么我们只能映射一次DB列的原因吗?也就是说,如果允许field同时具有属性映射和条件映射,那么属性映射将告诉EF检索所有表行,而条件映射将告诉EF仅检索满足条件的行 b) 如果我在a)下的推理是正确的,那么当条件设置为为NotNull时,为什么允许字段同时具有这两个映射?为什么这不会引起冲突 谢谢条件为Not

在大多数情况下,我们可以将表中的字段映射到属性,也可以使用条件映射对其进行映射,但不能同时映射两者。唯一的例外是,如果条件设置为
的值为NotNull
,那么我们也可以映射到列

a) 这就是为什么我们只能映射一次DB列的原因吗?也就是说,如果允许field同时具有属性映射和条件映射,那么属性映射将告诉EF检索所有表行,而条件映射将告诉EF仅检索满足条件的行

b) 如果我在a)下的推理是正确的,那么当条件设置为
为NotNull时,为什么允许字段同时具有这两个映射?为什么这不会引起冲突


谢谢

条件为NotNull的映射具有特殊意义,因为它需要在模型中进行后续更改。模型中的映射属性不能为Null。因此,数据库中的列可以为null,映射条件过滤所有具有null值的记录,并且属性始终只接收具有非null值的记录。此外,您永远不能将null赋值给属性


在值相等的常见情况下,这种特殊行为是不可能的。

hi Ladislav。请原谅我的愚蠢,但我(在你的回答中)没有找到我的两个问题的答案。如果你的回答中隐藏着一个答案,你能重新改写一下吗(也叫哑巴)?对不起,我不确定我能不能重新措辞让它更清楚。只需尝试使用
Is NotNull
条件并映射相关列,您就会看到差异。使用NotNull条件时不会发生冲突,因为实体中的属性不能为Null,因此条件映射是筛选的第一级,而映射属性上的任何查询筛选只是不能与NotNull冲突的附加条件。“…并且对mapped属性的任何查询筛选只是不能与NotNull冲突的附加条件。”根据该逻辑,当使用is Null条件时,我们不应该也被允许映射到列吗?如果您的第一个条件(在映射中)只允许
为空
那么除了
为空
之外的任何其他条件都没有意义,因为它会过滤掉所有记录。哦,我明白了-虽然你可以对不可为空的属性/字段进行进一步过滤,但你不能再进行任何过滤(除了过滤为空)关于具有空值的属性/字段。非常感谢