Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.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
C# 带null的字符串如何给出null以外的结果_C#_.net_Linq_Entity Framework_Lambda - Fatal编程技术网

C# 带null的字符串如何给出null以外的结果

C# 带null的字符串如何给出null以外的结果,c#,.net,linq,entity-framework,lambda,C#,.net,Linq,Entity Framework,Lambda,这张照片几乎说明了一切。我有一个空字符串,无法使用它获取用户。但是,如果我输入null,它就会工作 我做了这个可行的变通办法,但我看不出应该如何需要它 我确实看到了一些关于nullable原语和EF 6(我正在使用EF6)的内容,但这是一个字符串 有人知道为什么吗 更新 从这里可以看出,我使用UseCSharpNullComparisonBehavior=true 我现在已经在Azure和SQL Express上进行了尝试 奇怪的是,这在实时系统上工作,我们已经做了一些开发,但据我所知,没

这张照片几乎说明了一切。我有一个空字符串,无法使用它获取用户。但是,如果我输入null,它就会工作

我做了这个可行的变通办法,但我看不出应该如何需要它

我确实看到了一些关于nullable原语和EF 6(我正在使用EF6)的内容,但这是一个字符串

有人知道为什么吗


更新

从这里可以看出,我使用
UseCSharpNullComparisonBehavior=true
我现在已经在Azure和SQL Express上进行了尝试

奇怪的是,这在实时系统上工作,我们已经做了一些开发,但据我所知,没有任何东西会影响这一点

我还更新了nuget的最新EF


检查这个问题:

本质上,这是由于实体框架正在将lambda表达式转换为SQL。您输入的显式
null
正在触发EF在SQL中进行
is null
比较

编辑:

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

objectContext.ContextOptions.UseCSharpNullComparisonBehavior = true;

是的,我早些时候发现了那个帖子,但因为它说它是在EF6中修复的,所以我不认为是它。另外,我已经在我的上下文中设置了UseCSharpNullComparisonBehavior。我再次检查UseCSharpNullComparisonBehavior是否设置为true。我和天蓝色赛跑。不知道这是否有什么不同。我现在已经在本地SQL express上试过了,同样的问题。奇怪的是,它可以在实时版本上运行(实时系统已经运行了100个工作小时),但上下文或类似内容没有任何变化。它也适用于另一个代码非常相似的系统。