c# - 带有 null 的字符串如何给出除 null 之外的其他结果

标签 c# .net linq entity-framework lambda

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

Weirdest error

我做了这个可行的解决方法,但我看不出它应该如何需要 enter image description here

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

有人知道为什么吗?


更新

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

奇怪的是,这可以在实时系统上运行,此后我们进行了一些开发,但据我所知,这不会影响它。

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

enter image description here

最佳答案

看看这个问题:

How can i query for null values in entity framework?

本质上,这是由于 Entity Framework 正在将您的 lambda 表达式转换为 SQL 造成的。您输入的显式 null 触发 EF 在 SQL 中执行 IS NULL 比较

编辑:

自从您使用 EF 6 以来,如果您将上下文设置为允许使用 null 比较,这看起来会起作用,例如:

objectContext.ContextOptions.UseCSharpNullComparisonBehavior = true;

关于c# - 带有 null 的字符串如何给出除 null 之外的其他结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29307479/

相关文章:

c# - 结果显示 System.String[]

c# - 将结果分配给变量时 NotNullWhen 是否应该工作?

c# - 使用 System.IO.Compression 在内存中创建 ZIP 存档

c# - 从文件夹中删除文件的单元测试方法

c# - 将 LINQ 'GroupBy' 运算符(operator)键排序为自定义顺序

c# - 是否可以在 C# 中使用分支预测提示?

应用程序启动时的 C# Windows 窗体应用程序更新

.net - 解析 XML boolean 属性(在 .NET 中)的最佳方法是什么?

c# - 如何在 C# 中为 LambdaExpression 组合 MemberExpression 实例?

c# - 确定累积点的起点