Linq 如何查询整型列中的";以“开始”;在实体框架中?

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(),因为实体框架不支持它 有人能提供帮助

我有一列在EF中定义为整数(代码优先)。我想使用“开始”搜索它。现在,我可以执行以下操作:

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+呢?