使用contains里面返回空?

时间:2017-04-27 02:32:26

标签: linq entity-framework-6 linq-to-entities

我正在尝试解决可能更像是LINQ问题的EF查询。使用包含在这里的内部(使用linqpad进行测试)。

下面的查询我得到一个空结果,即使我知道retval有我感兴趣的结果。

查询#1

var retval = (from a in DeliveryOrders 
              join b in CustomerOrders on a.CustomerOrderID equals b.ID 
              where b.OrderDate > DateTime.Now.AddMonths(-3)
              select a).ToList();

var retval2 = retval.Where (r => r.DeliveryOrderNo.Contains("hd")).ToList();

retval2.Dump();

如果我像第一个查询中那样使用where,我会得到我期望的结果。

查询#2

var retval = (from a in DeliveryOrders 
              join b in CustomerOrders on a.CustomerOrderID equals b.ID 
              where b.OrderDate > DateTime.Now.AddMonths(-3)    
                    && a.DeliveryOrderNo.Contains("hd")
              select a).ToList();

为什么第一个结果返回空,但第二个结果返回我的期望? 在尝试了一些不同的事情后,似乎是一个区分大小写的问题。

我是否正确地说在查询#1中,contains方法用于.net集合,而对于查询#2,contains方法被转换为SQL,这样可以解释区分大小写的区别?

[更新] 我现在可以确认,它是一个案例问题,因为一个被转换为sql,但另一个是.net,它对字符串区分大小写。

0 个答案:

没有答案
相关问题