2011-02-03 78 views
1

我有一個對象圖:WCF和實體框架懶加載

學校 - >班級 - >學生。

,我想將其設置在我可以發送回學校類客戶端的一種方法,它可以訪問的延遲加載類的方式和學生。

這可能嗎?

回答

4

簡單:沒有

您可以:

  • 在一次調用( 「預先加載」)

或發回所需的所有數據(包括classesstudentsschool實體)

  • 你需要有對你的WCF服務不同的方法來檢索在一個單獨的呼叫詳細數據(是這樣的:這當然不是這樣,當您在使用WCF線路發送實體 - List<Class> GetClassesForSchool(int schoolId)List<Student> GetStudentsForClass(int classId)

延遲加載本身只是只要你的實體框架對象上下文仍然是圍繞要查詢更多數據的工作。

+1

+1隱式懶加載了Web服務是壞的架構,很難實現(你必須通過自己的客戶端實體的屬性實現它)。您必須執行@marc描述的內容,或者您​​可以使用支持Expand方法的WCF數據服務來明確加載導航屬性。 – 2011-02-03 10:33:18

1

我不這麼認爲,因爲你的實體在不同層次旅遊和與數據庫連接的人會沒有你的interventation從任何其他層進行訪問。

你需要定製自己的解決方案要做到這一點,或者只是使用數據傳輸對象,這將有正確的信息,也不是一個,可能是無用的一些看法。

更新:如果您想了解更多關於DTO模式 閱讀這篇文章: