我有一个简单的 LINQ-to-Entities 查询,如下所示:
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
要注意的是,这种查询方式不是sargable ,因此,如果您可以在比较之前通过任何其他方式缩小订单范围,请务必这样做!
关于c#-4.0 - 在存在尾随空格的情况下使用 SqlFunctions.IsNumeric() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9778309/