2011-08-15 7 views
0

私は以下のLinq To SQLメソッドを持っています。私がコードspcCodeIDsを踏むと、私が期待している7つのエントリが含まれています。しかし、私は、私が行方不明です何Linq to .Containsを使用したSQLメソッドが失敗する

Method 'Boolean Contains(System.String)' has no supported translation to SQL.

の実行時例外を取得しますか? SQLへ

public static DataTable GetSPCCodeList() 
{   

    using (var context = ProviderDataContext.Create()) 
    { 
     IQueryable<tblProviderAdminSPCCode> tSPCCode = context.GetTable<tblProviderAdminSPCCode>(); 
     IList<string> spcCodeIDs = BLLCmo.FCApprovedSPCsForGreenSheet(); 
     return (tSPCCode 
       .Where(spcCode => spcCode.Inactive == null && spcCodeIDs.Contains(spcCode.SPCCodeID)) 
       .OrderBy(spcCode => spcCode.SPCCodeID) 
       .Select(spcCode => new { spcCode.SPCCodeID, spcCode.SPCDescription, spcCode.SPCCategoryID })) 
       .CopyLinqToDataTable(); 
    } 
} 

答えて

5

LINQは、唯一のサポートは、あなたが渡す必要が

List<string> spcCodeIDs = BLLCmo.FCApprovedSPCsForGreenSheet().ToList(); 
+0

素晴らしい、ありがとう。それは知らなかった。 –

+0

@あなたが賭けたパラディン!最初はあまり意味がありませんが、あなたは限界に慣れています。 –

0

IList<string> spcCodeIDs = BLLCmo.FCApprovedSPCsForGreenSheet(); 

から自分のラインを変更してみてください。..翻訳は、具体的なリストではなくIListインターフェイスを形成含みますすることができますContainsのパラメータとしての文字列。だから、spcCode.SPCCodeID.ToString()を試してみてください

関連する問題