C# 实体框架查询中的用户启动

C# 实体框架查询中的用户启动,c#,.net,linq,entity-framework,C#,.net,Linq,Entity Framework,我如何使用trimstart以便实体框架了解该做什么 我的问题是: string number="123"; Workers.Where(x => x.CompanyId == 8).Where(x => x.Number.TrimStart('0') == number); 如果没有AsEnumerable(公司8中有很多工作人员),我如何使此查询工作?尝试使用此查询。我使用值“000123”,“000One”,“abcde”测试了一个类似于下面的查询,它正确地选择了值为“123

我如何使用trimstart以便实体框架了解该做什么

我的问题是:

string number="123";
Workers.Where(x => x.CompanyId == 8).Where(x => x.Number.TrimStart('0') == number);
如果没有AsEnumerable(公司8中有很多工作人员),我如何使此查询工作?

尝试使用此查询。我使用值
“000123”
“000One”
“abcde”
测试了一个类似于下面的查询,它正确地选择了值为
“123”
“one”
“abcde”
的行


这是因为SQL中的trim函数只能修剪空白,所以EF支持
TrimStart
方法,但只支持不带参数的方法


您的需求首先应该引起关于提高数据库中数据质量的讨论!您的数据质量不足以有效地支持此类查询

@Austin Salonen:数字就是字符串!的确我想我的意思是字符串内容总是数字的(就像你的例子),或者类似于
AAK89234
一个有效的“数字”?@Austin Salonen:甚至可能是你写的AAK89234行。我理解你的意思,这是一个用零存储数据的问题。但现在这是一个系统,我需要找到一个解决方案。谢谢。否决-我同意数据库是应该清理数据的地方,但第三方数据库并不总是控制这些数据。一个更有用的答案是解决杰夫提到的问题-理论上的答案太多,实践上的答案太少。有人指出实际问题是好事,这就是人们相互学习的方式。不过,给出一个切实可行的答案也不错,但杰夫已经这样做了。
Workers.Where(x => x.CompanyId == 8 && 
                   x.Number.Substring(SqlFunctions.PatIndex("%[^0]%", x.Number).Value - 1) == number);