为什么EF6 LINQ无法为空字符串变量比较生成正确的“是否为空” SQL?

佐尔坦·塔玛西(ZoltánTamási)

我们有一个基于EDMX的EF6应用程序,我们想在其中运行这样的LINQ查询。

string category = ... // comes from somewhere and equals to null
context.Product.Where(e => e.Category == category).ToArray();

我看到的问题是,生成的SQL包含[table].[Category] = @p...在where子句中,无论变量的category存在null与否。因此,在一天结束时,如果变量为null则查询不会返回任何结果,而不是生成适当的is null条件并返回适当的行。

我已经测试了显式e => e.Category == null表达式,并且确实生成了is null预期的表达式

我还检查了EDMX和SQL,并且相应的Category列实际上在两个地方都为空,因此这可能不是问题。

任何帮助,将不胜感激。

格尔格利·乌尔巴西克

尝试设置context.Configuration.UseDatabaseNullSemanticsfalse这是影响上述行为的属性。

这里查看文档

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EF6 SQL生成<其中可为空的列等于>

来自分类Dev

EF6中的方法链接无法输出正确的SQL

来自分类Dev

EF6中的方法链接无法输出正确的SQL

来自分类Dev

EF6 生成不需要的 SQL 查询

来自分类Dev

通过 EF6 在方法链上获取生成的 sql

来自分类Dev

EF6:将DataGridView的DataSource设置为EF-Entity也会导致加载其子级。为什么?

来自分类Dev

通用EF6存储库方法无法生成正确的SQL

来自分类Dev

EF6:在SQL Server DB的模型生成中无法识别外键

来自分类Dev

EF6:在SQL Server DB的模型生成中无法识别外键

来自分类Dev

使用linq to SQL和EF6向数据库表中插入字符串或向数据库表添加字符串?

来自分类Dev

使用linq to SQL和EF6向数据库表中插入字符串或向数据库表添加字符串?

来自分类Dev

EF6 Schema 比较数据库和 sql 文件?

来自分类Dev

为什么在C ++中将字符串引用成员变量设置为空字符串?

来自分类Dev

EF6 MySql:Update-Database -Script生成不带分号的SQL

来自分类Dev

SQL字符串正确,但fetchAll为空

来自分类Dev

为什么%(Identity)扩展为空字符串?

来自分类Dev

为什么%(Identity)扩展为空字符串?

来自分类Dev

为什么包含空字符串的列表为真?

来自分类Dev

ASP.NET MVC 4 EF6无法连接到SQL Server Express数据库

来自分类Dev

当我用EF6查询数据库时,使用LINQ有什么优势?

来自分类Dev

试图找到正确的EF6实现

来自分类Dev

EF6 LINQ铸柱

来自分类Dev

EF6 LINQ铸柱

来自分类Dev

EF6和预生成的视图

来自分类Dev

为SQL数据库添加连接字符串时,providerName属性应为什么?

来自分类Dev

阻止在EF6中为特定实体生成表

来自分类Dev

我应该从SQL CLR函数使用EF6吗

来自分类Dev

在EF6中执行复杂的原始SQL查询

来自分类Dev

EF6升级后的额外SQL调用

Related 相关文章

  1. 1

    EF6 SQL生成<其中可为空的列等于>

  2. 2

    EF6中的方法链接无法输出正确的SQL

  3. 3

    EF6中的方法链接无法输出正确的SQL

  4. 4

    EF6 生成不需要的 SQL 查询

  5. 5

    通过 EF6 在方法链上获取生成的 sql

  6. 6

    EF6:将DataGridView的DataSource设置为EF-Entity也会导致加载其子级。为什么?

  7. 7

    通用EF6存储库方法无法生成正确的SQL

  8. 8

    EF6:在SQL Server DB的模型生成中无法识别外键

  9. 9

    EF6:在SQL Server DB的模型生成中无法识别外键

  10. 10

    使用linq to SQL和EF6向数据库表中插入字符串或向数据库表添加字符串?

  11. 11

    使用linq to SQL和EF6向数据库表中插入字符串或向数据库表添加字符串?

  12. 12

    EF6 Schema 比较数据库和 sql 文件?

  13. 13

    为什么在C ++中将字符串引用成员变量设置为空字符串?

  14. 14

    EF6 MySql:Update-Database -Script生成不带分号的SQL

  15. 15

    SQL字符串正确,但fetchAll为空

  16. 16

    为什么%(Identity)扩展为空字符串?

  17. 17

    为什么%(Identity)扩展为空字符串?

  18. 18

    为什么包含空字符串的列表为真?

  19. 19

    ASP.NET MVC 4 EF6无法连接到SQL Server Express数据库

  20. 20

    当我用EF6查询数据库时,使用LINQ有什么优势?

  21. 21

    试图找到正确的EF6实现

  22. 22

    EF6 LINQ铸柱

  23. 23

    EF6 LINQ铸柱

  24. 24

    EF6和预生成的视图

  25. 25

    为SQL数据库添加连接字符串时,providerName属性应为什么?

  26. 26

    阻止在EF6中为特定实体生成表

  27. 27

    我应该从SQL CLR函数使用EF6吗

  28. 28

    在EF6中执行复杂的原始SQL查询

  29. 29

    EF6升级后的额外SQL调用

热门标签

归档