使用.Contains的Linq To SQL方法失败

Ref*_*din 0 c# linq-to-sql

我有下面的Linq To SQL方法.当我单步执行代码spcCodeIDs包含我期待的七个条目时.但是我得到了一个运行时例外

Method 'Boolean Contains(System.String)' has no supported translation to 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();
    }
}
Run Code Online (Sandbox Code Playgroud)

Qui*_*son 6

LINQ to SQL只能支持包含翻译的具体列表,而不是IList接口.尝试更改您的行

IList<string> spcCodeIDs = BLLCmo.FCApprovedSPCsForGreenSheet();
Run Code Online (Sandbox Code Playgroud)

List<string> spcCodeIDs = BLLCmo.FCApprovedSPCsForGreenSheet().ToList();
Run Code Online (Sandbox Code Playgroud)