图片几乎说明了一切。我有一个空字符串,我无法让我的用户使用它。但是,如果我输入 null 它会起作用。
我做了这个可行的解决方法,但我看不出它应该如何需要
我确实看到了一些关于可空基元和 EF 6(我使用的是 EF6)的信息,但这是一个字符串。
有人知道为什么吗?
更新
从这里可以看出,我使用了 UseCSharpNullComparisonBehavior = true;
我现在已经在 Azure 和 SQL Express 上都试过了。
奇怪的是,这可以在实时系统上运行,此后我们进行了一些开发,但据我所知,这不会影响它。
我还从 nuget 更新到最新的 EF。
最佳答案
看看这个问题:
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/