entity framework查询中的user trimstart
我怎样才能使用trimstart所以entity framework会理解该怎么做?
这是我的查询:
string number="123"; Workers.Where(x => x.CompanyId == 8).Where(x => x.Number.TrimStart('0') == number);
如何在没有AsEnumerable的情况下使这个查询工作(公司8中有很多工人)?
尝试使用SqlFunctions.PatIndex
。 我使用值"000123"
, "000One"
, "abcde"
测试了类似于下面的查询,并且正确选择了值为"123"
, "One"
和"abcde"
。
Workers.Where(x => x.CompanyId == 8 && x.Number.Substring(SqlFunctions.PatIndex("%[^0]%", x.Number).Value - 1) == number);
这是因为SQL中的trim函数只能修剪空格,因此EF支持TrimStart
方法,但只支持没有参数。
首先,您的要求应引发有关提高数据库数据质量的讨论! 您的数据无法提供有效支持此类查询的质量。