2012-08-15 72 views
-3

代碼示例值的工作:與不同類型的

var reports = repository.GetAll().ToList(). 
    Where(r => r.Documents. 
       Where(d => d.Reports. 
           Where(rw => rw.ID == reportID).Any()).Any()). 
    ToList<IDocumentObjects>(); 

,但我不希望使用ToList 此代碼調用一個錯誤:

var reports = repository.GetAll(). 
    Where(r => r.Documents. 
        Where(d => d.Reports. 
           Where(rw => rw.ID == reportID).Any()).Any()). 
    ToList<IDocumentObjects>(); 

錯誤:

Member access 'System.Collections.Generic.IList 1[IReport] Reports' of 'IDocument' not legal on type 'System.Collections.Generic.IList 1[IDocument].

問題:如何在Get中使用ToList創建此請求全部()?

+2

有什麼問題? – elyashiv 2012-08-15 08:13:13

+1

什麼類型是'repository'? – 2012-08-15 08:13:58

+1

GetAll返回什麼? – erikH 2012-08-15 08:17:41

回答

1

您的導航屬性使用接口而不是實體類型(例外情況提及IReportIDocument)。將其更改爲實現並再次嘗試。 EF不支持接口。

+0

我需要使用其他接口來解決這個問題嗎? – Mediator 2012-08-15 11:00:36

+0

如果您需要使用接口EF對您來說不是很好的技術。 – 2012-08-15 12:00:20