簡體   English   中英

Linq 到 SQL 方法 with.Contains 失敗

[英]Linq To SQL Method with .Contains fails

我有下面的 Linq 到 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();
    }
}

LINQ 到 SQL 只能支持包含翻譯形成一個具體的列表,而不是 IList 接口。嘗試從

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

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

您需要將字符串作為參數傳遞給 Contains。 所以嘗試通過 spcCode.SPCCodeID.ToString()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM