如何在实体框架中查询整数列中的"starts with"?



我有一个在EF (Code First)中定义为整数的列。我想用"以…开头"来搜索现在,我可以这样做:

Where(x => SqlFunctions.StringConvert((double)x.AccountNumber).StartsWith(searchTerm))

然而,SqlFunctions.StringConvert()被转换为T-SQL函数STR(),由于超出我理解的原因,它左填充结果。

另外,我不能使用string.TrimStart(),因为它不支持实体框架。

有谁能帮帮忙吗?

Trim()TrimStart()在LINQ to Entities中工作,所以你可以使用:

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%'

最新更新