2011-10-10 2 views
17

EF (코드 우선)에서 정수로 정의 된 열이 있습니다. "시작하기"를 사용하여 검색하고 싶습니다. 지금, 나는이 작업을 수행 할 수 있습니다Entity Framework에서 "starts with"에 대한 정수 열을 쿼리하려면 어떻게합니까?

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

그러나, SqlFunctions.StringConvert() 왼쪽 패드 나의 이해를 벗어난 이유에 대한 결과를 T-SQL 기능 STR(),로 번역됩니다.

또한 Entity Framework에서 지원하지 않기 때문에 string.TrimStart()을 사용할 수 없습니다.

누구에게 도움을 줄 수 있습니까?

답변

20

Trim() 및 엔티티에 LINQ에서 TrimStart() 일, 그래서 당신이 사용할 수는 :

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

위대한 작품. 귀하의 답변에 감사드립니다. – User

관련 문제