2011-10-10 34 views
17

Tôi có một cột được định nghĩa là một số nguyên trong EF (Mã Đầu tiên). Tôi muốn tìm kiếm bằng cách sử dụng "bắt đầu bằng". Bây giờ, tôi có thể làm điều này:Làm cách nào để truy vấn cột số nguyên cho "bắt đầu bằng" trong Entity Framework?

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

Tuy nhiên, SqlFunctions.StringConvert() được phiên dịch sang các chức năng T-SQL STR(), mà trái miếng kết quả vì những lý do đó là vượt quá sự hiểu của tôi.

Ngoài ra, tôi không thể sử dụng string.TrimStart() vì khung này không được Khung thực thể hỗ trợ.

Có ai có thể cho bạn bất kỳ sự trợ giúp nào không?

Trả lời

20

Trim()TrimStart() làm việc trong LINQ to Entities, vì vậy bạn có thể sử dụng:

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

TrimStart chuyển thành LTRIM trong SQL. Với searchTerm = 123 ví dụ: bạn có được một cái gì đó như:

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

công việc tuyệt vời. Cảm ơn câu trả lời của bạn. – User

Các vấn đề liên quan