2014-10-09 88 views
1

我已經在一些軟件的底端引發了它,它涉及到LINQ,我遇到了問題。LINQ不能隱式地將類型Generic.ICollection轉換爲Generic.List

背景:

我需要顯示與組織有關的付款清單。

我已經退出了組織對象從數據庫中是這樣的:

var orgDetails = Ctx.Organizations.Where(x => x.OrganizationId == orgID); 

我已經然後拉出這樣的方式:

var orgPayments = (from payments in orgDetails.Select(x => x.ProcessedPayments) select payments); 

然後我想將它們傳遞到一個類:

public class InvoiceDetails 
{ 
    public List<ProcessedPayment> ProcessedPayment { get; set; } 
    public List<InvoiceLineItems> InvoiceLineItems { get; set; } 
} 

這樣的:

InvoiceDetails InvoiceDetailModel = new InvoiceDetails 
{ 
    ProcessedPayment = orgPayments, 
    InvoiceLineItems = invoicelineitems 
}; 

我也得到了可怕的錯誤:

LINQ Cannot implicitly convert type Generic.ICollection to Generic.List 

我只是不知道是什麼,我需要做的,它轉換到一個列表。我試圖將其更改爲

var orgPayments = (from payments in orgDetails.Select(x => x.ProcessedPayments) select payments).ToList(); 

沒有運氣

誰能幫我找出我做錯了嗎?

感謝

+4

目前還不清楚爲什麼您使用的查詢表達式都,而不僅僅是'var orgPayments = orgDetails.Select(x => x.ProcessedPayments).ToList()'...但是你確定*這是導致問題的支付而不是'InvoiceLineItems'? – 2014-10-09 15:45:04

+2

你確定添加'.ToList()'不起作用嗎?這個錯誤可能會在對象的兩個屬性上重複出現,所以您可能還需要在'invoicelineitems'上調用'.ToList()'。另外,錯誤信息應該在'<>'方括號之間指明一個類型說明符。 – David 2014-10-09 15:45:25

+3

此外,我強烈懷疑這不是實際的錯誤消息。請將* exact *錯誤信息複製並粘貼到您的問題中。 – 2014-10-09 15:45:40

回答

3

您的第一個查詢爲您提供了一個組織列表,而不是一個我認爲正在尋找的組織列表(假設OrganizationId是您的主鍵)。查看Where方法,它將返回一個IEnumerable<>

所以我將其更改爲:

var orgDetails = organizations.Single(x => x.OrganizationId == orgID); 

要知道,這將引發異常,如果有orgID組織沒有找到,所以你可能需要使用SingleOrDefault代替,並檢查orgDetails != null

這意味着你不需要任何進一步的LINQ得到支付和而不是創建orgPayments變量,只要使用orgDetails.ProcessedPayments這樣的:

InvoiceDetails InvoiceDetailModel = new InvoiceDetails 
{ 
    ProcessedPayment = orgDetails.ProcessedPayments, 
    InvoiceLineItems = invoicelineitems 
}; 
+0

我結束了ProcessedPayment = orgDetails.ProcessedPayments.ToList()感謝您花時間幫助我:) – 2014-10-09 19:46:54

-3

試試這個:

var orgPayments = orgDetails.Select(x => x.ProcessedPayments).ToList(); 

另外,我不明白你在哪裏定義和分配給您的invoiceLineItems變量。

+0

這就是問題了。問題是*爲什麼*。 – 2014-10-09 15:44:37

相關問題