Подтвердить что ты не робот

Как запросить целочисленный столбец для "начинается с" в Entity Framework?

У меня есть столбец, который определяется как целое число в EF (Code First). Я хочу найти его, используя "начинается с". Теперь я могу это сделать:

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

Однако SqlFunctions.StringConvert() переводится в T-SQL-функцию STR(), которая оставляет результаты по причинам, которые выходят за рамки моего понимания.

Кроме того, я не могу использовать string.TrimStart(), потому что он не поддерживается платформой Entity Framework.

Может ли кто-нибудь помочь?

4b9b3361

Ответ 1

Trim() и TrimStart() работают в LINQ to Entities, поэтому вы можете использовать:

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

TrimStart преобразуется в LTRIM в SQL. С searchTerm= 123, например, вы получаете что-то вроде:

WHERE LTRIM(STR( CAST( [Extent1].[AccountNumber] AS float))) LIKE N'123%'