实体框架查询用户trimstart
本文关键字:trimstart 用户 查询 框架 实体 | 更新日期: 2023-09-27 18:12:38
如何使用trimstart使实体框架理解要做什么?
这是我的查询:
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);
我有一个例子,简单地使用
.AsEnumerable()
让它工作
Workers.AsEnumerable().Where(x => x.CompanyId == 8).Where(x => x.Number.TrimStart('0') == number);
这是因为SQL中的trim函数只能修剪空白,所以EF支持TrimStart
方法,但只能不带参数。
您的需求应该首先引起关于提高数据库中数据质量的讨论!您的数据质量不高,无法有效地支持这类查询。