如何查询整数列中的“开头为”在实体框架中?
我有一列在 EF(代码优先)中定义为整数。我想使用“开头为”来搜索它。现在,我可以这样做:
Where(x => SqlFunctions.StringConvert((double)x.AccountNumber).StartsWith(searchTerm))
但是,SqlFunctions.StringConvert()
被转换为 T-SQL 函数 STR()
,该函数会向左填充结果,原因如下:超出了我的理解范围。
另外,我无法使用 string.TrimStart()
因为实体框架不支持它。
有人可以提供帮助吗?
I have a column that's defined as an integer in EF (Code First). I want to search it using "starts with." Now, I can do this:
Where(x => SqlFunctions.StringConvert((double)x.AccountNumber).StartsWith(searchTerm))
However, SqlFunctions.StringConvert()
gets translated to the T-SQL function STR()
, which left-pads the result for reasons which are beyond my comprehension.
Also, I can't use string.TrimStart()
because it's not supported by the Entity Framework.
Can anyone lend any help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Trim()
和TrimStart()
在 LINQ to Entities 中工作,因此您可以使用:TrimStart
转换为LTRIM
在 SQL 中。例如,使用searchTerm
= 123 您会得到如下内容:Trim()
andTrimStart()
work in LINQ to Entities, so you can use:TrimStart
translates intoLTRIM
in SQL. WithsearchTerm
= 123 for example you get something like: