Linq 如何查询整型列中的";以“开始”;在实体框架中?
我有一列在EF中定义为整数(代码优先)。我想使用“开始”搜索它。现在,我可以执行以下操作:Linq 如何查询整型列中的";以“开始”;在实体框架中?,linq,entity-framework,search,ef-code-first,Linq,Entity Framework,Search,Ef Code First,我有一列在EF中定义为整数(代码优先)。我想使用“开始”搜索它。现在,我可以执行以下操作: Where(x => SqlFunctions.StringConvert((double)x.AccountNumber).StartsWith(searchTerm)) 但是,SqlFunctions.StringConvert()被转换为T-SQL函数STR(),这导致pads结果的原因超出了我的理解 另外,我不能使用string.TrimStart(),因为实体框架不支持它 有人能提供帮助
Where(x => SqlFunctions.StringConvert((double)x.AccountNumber).StartsWith(searchTerm))
但是,SqlFunctions.StringConvert()
被转换为T-SQL函数STR()
,这导致pads结果的原因超出了我的理解
另外,我不能使用string.TrimStart()
,因为实体框架不支持它
有人能提供帮助吗?Trim()
和TrimStart()
在LINQ中工作到实体,因此您可以使用:
Where(x => SqlFunctions.StringConvert((double)x.AccountNumber)
.TrimStart().StartsWith(searchTerm))
TrimStart
在SQL中转换为LTRIM
。例如,使用searchTerm
=123,您会得到如下结果:
WHERE LTRIM(STR( CAST( [Extent1].[AccountNumber] AS float))) LIKE N'123%'
那么EF Core 3+呢?