【问题标题】:How can a string with null give other result than null带有 null 的字符串如何给出除 null 之外的其他结果
【发布时间】:2015-03-27 18:11:52
【问题描述】:

图片几乎说明了一切。我有一个为空的字符串,我无法让我的用户使用它。但是,如果我输入 null 它会起作用。

我做了这个可行的解决方法,但我不知道应该如何需要它

我确实看到了一些关于可空原语和 EF 6(我正在使用 EF6)的信息,但这是一个字符串。

有人知道为什么吗?


更新

从这里可以看出,我使用UseCSharpNullComparisonBehavior = true; 我现在在 Azure 和 SQL Express 上都试过了。

奇怪的是这可以在实时系统上运行,我们已经进行了一些开发,但据我所知没有任何影响。

我还从 nuget 更新到了最新的 EF。

【问题讨论】:

    标签: c# .net linq entity-framework lambda


    【解决方案1】:

    看看这个问题:

    How can i query for null values in entity framework?

    本质上它是由实体框架将您的 lambda 表达式转换为 SQL 的事实引起的。您输入的显式null 正在触发EF 在SQL 中进行IS NULL 比较

    编辑:

    由于您使用的是 EF 6,因此如果您将上下文设置为允许使用空比较,这将起作用,例如:

    objectContext.ContextOptions.UseCSharpNullComparisonBehavior = true;
    

    【讨论】:

    • 是的,我早些时候发现了那个帖子,但因为它说它在 EF6 中已修复,所以我不认为是这样。此外,我已经在我的上下文中设置了 UseCSharpNullComparisonBehavior。
    • 我仔细检查了 UseCSharpNullComparisonBehavior 是否设置为 true。我反对天蓝色。不知道这有什么不同。
    • 我现在尝试了本地 SQL express,同样的问题。奇怪的是它适用于实时版本(从实时系统中输入了 100 个工作小时),但上下文或类似内容没有任何变化。它也适用于具有非常相似代码的另一个系统。
    猜你喜欢
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 2017-04-12
    • 2019-10-28
    • 2014-07-08
    • 1970-01-01
    相关资源
    最近更新 更多