2011-10-10 9 views
17

devo una colonna che è definita come un intero EF (Codice First). Voglio cercare usando "inizia con". Ora, posso fare questo:Come posso tua ricerca una colonna integer per "inizia con" in Entity Framework?

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

Tuttavia, SqlFunctions.StringConvert() si traduce alla funzione T-SQL STR(), che ha lasciato-Pad il risultato, per motivi che sono oltre la mia comprensione.

Inoltre, non posso usare string.TrimStart() perché non è supportato da Entity Framework.

chiunque può dare una mano?

risposta

20

Trim() e TrimStart() lavoro in LINQ to Entities, in modo da poter utilizzare:

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

TrimStart traduce in LTRIM in SQL. Con searchTerm = 123, ad esempio, ottieni qualcosa del tipo:

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

ottimo lavoro. Grazie per la tua risposta. – User

Problemi correlati