如何在Entity Framework中查询整数列中的"starts with"?

Jos*_*off 17 linq search entity-framework ef-code-first

我有一个列被定义为EF(代码优先)中的整数.我想用"start with"来搜索它.现在,我可以这样做:

Where(x => SqlFunctions.StringConvert((double)x.AccountNumber).StartsWith(searchTerm))
Run Code Online (Sandbox Code Playgroud)

然而,SqlFunctions.StringConvert()转换为T-SQL函数STR(),由于我无法理解的原因而留下了结果.

此外,我无法使用,string.TrimStart()因为实体框架不支持它.

任何人都可以提供任何帮助吗?

Sla*_*uma 20

Trim()TrimStart()在LINQ to Entities中工作,因此您可以使用:

Where(x => SqlFunctions.StringConvert((double)x.AccountNumber)
    .TrimStart().StartsWith(searchTerm))
Run Code Online (Sandbox Code Playgroud)

TrimStart转换为LTRIMSQL.searchTerm例如,使用= 123,您可以获得如下内容:

WHERE LTRIM(STR( CAST( [Extent1].[AccountNumber] AS float))) LIKE N'123%'
Run Code Online (Sandbox Code Playgroud)