linq to entities:将字符串变量与NVarchar字段进行比较

时间:2017-06-30 13:45:25

标签: string linq equality varchar entities

此代码导致超时异常

String City_Code = null;
var result = (from r in myContext.TableA
                  where ( City_Code == r.City_Code )
                  select r ).ToList();

虽然此代码将快速返回

String City_Code = null;
var result = (from r in myContext.TableA
                  where ( r.City_Code == City_Code ) 
                  select r ).ToList();

不同之处在于相等操作数的顺序。表TableA的字段City_Code的类型为nvarchar(20)。

这可能是什么原因???

更新:除了该部分之外,为2个查询生成的tsql是相同的:第一个具有条件“@ p__linq__2 = [Extent1]。[City_Code])”,而第二个具有“[Extent1]。[City_Code] = @ p__linq__2)“

当我注意到时差为NULL时,@ p_linq_2的值。如果我在ssms中使用NULL代替@p_linq_2运行查询,它们会很快响应

0 个答案:

没有答案