2011-10-10 9 views
17

私はEF(コードファースト)で整数として定義されている列を持っています。私は "から始まる"を使用してそれを検索したい今、私はこれを行うことができます。Entity Frameworkで整数列を "starts with"としてクエリするにはどうすればよいですか?

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

しかし、SqlFunctions.StringConvert()は左パッドの私の理解を超えている理由のために、結果をT-SQL関数STR()、に変換されます。

また、string.TrimStart()はEntity Frameworkではサポートされていないため使用できません。

誰でも助けてもらえますか?

答えて

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

関連する問題