FMF*_*MFF 3 linq-to-entities sqlclient c#-4.0
我有一个简单的LINQ到实体查询,如下所示:
 var BillingNumbers = from o in dbcontext.Orders
                      where SqlFunctions.IsNumeric(o.BillingNumber) == 1
                      select o.BillingNumber;
该查询大部分时间都有效。但是,最近我遇到了这样一种情况,其中BillingNumber确实是数字,但是有一些尾随空格。该查询完全错过了这些值。
如果SqlFunctions.IsNumeric()不能忽略尾随空格,还有哪些选择?
.Net 4 / EF4 / VS2010
你可以做
where SqlFunctions.IsNumeric(o.BillingNumber.Trim()) == 1
它翻译成
WHERE (ISNUMERIC(LTRIM(RTRIM([Extent1].[BillingNumber])))) > 0
请注意,这种查询方式不可修改,因此,如果您可以在进行比较之前以其他任何方式缩小订单范围,请确保执行此操作!