有人能夠啓發我對「DbContext」和「DbSet」的預期使用(最佳實踐),其中數據使用者應該不依賴於EF什麼(100%POCO)。儘管我找到的所有示例都解釋瞭如何爲底層數據源(通常對應於RDBMS表)創建POCO類,但它們仍然向外界展示了「DbContext」和「DbSet」(包括MSFT自己的關於如何進行數據綁定的示例與這些類)。這似乎打敗或(嚴重)降低使用POCO的好處。 IOW,客戶仍然受限於EF,而不是一種更清潔(IMHO)的方法來創建一些內部使用EF的數據存儲項目,但只向用戶公開POCO。爲什麼EF上的所有文章似乎都忽略了這一點(我錯過了什麼)。謝謝。「DbContext」和「DbSet」應該暴露給純POCO應用程序
2
A
回答
3
您通常會創建一個使用DbContext的服務層(基於Repository模式)。它的作用是在數據庫和應用程序/客戶端之間進行調解。它將接受來自客戶的POCO並將POCO返還給客戶。這樣,客戶端知道存儲庫,但它不知道關於DbContext的任何信息。
一些更多的閱讀你:
http://blogs.microsoft.co.il/blogs/gilf/archive/2010/01/20/using-repository-pattern-with-entity-framework.aspx http://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx
相關問題
- 1. 在MVC應用程序中暴露OData
- 2. WCF暴露給其他應用程序,如瑞銀
- 3. 如何將Web API暴露給谷歌應用程序腳本
- 4. 如何將InfoPath表單暴露給.NET MVC應用程序
- 5. 建築工人應該如何暴露?
- 6. Openshift路由器:它們是否應該暴露在應用程序中?
- 7. 的Rails的WebService和C++應用程序暴露
- 8. 應用LINQ到一個DbSet內的DbContext
- 9. 服務合同(接口)應該暴露給客戶嗎?
- 10. 程序編程和數據暴露
- 11. 僅暴露來自DBContext的聚合根
- 12. 調用應用程序暴露出獅子
- 13. STORMPATH_URL暴露給我的heroku應用程序的目的是什麼?
- 14. 將COM對象暴露給在Wine/Linux中運行的應用程序
- 15. 將.net 4類庫中的C#類暴露給Silverlight應用程序
- 16. 避免暴露Web應用程序源中的主鍵?
- 17. 框架代碼在應用程序崩潰時暴露 - iOS
- 18. AJAX暴露了一個web應用程序的API
- 19. 從VB.Net暴露COM接口Winforms應用程序
- 20. 在SaaS多租戶RESTful應用程序中暴露ID
- 21. 通過WCF暴露Winforms應用程序的內部
- 22. 通過Rails應用程序暴露服務中的文件
- 23. 暴露的Windows Phone 8.1應用程序MediaCapture
- 24. 通過網絡爲iPhone應用程序暴露python api
- 25. 在應用程序中暴露數據庫
- 26. 暴露您的應用程序安裝到Android瀏覽器
- 27. 我應該使用純PHP/MySQL開發Web應用程序嗎?
- 28. 將C++類暴露給QML
- 29. 將C++ API暴露給C#
- 30. 將網址暴露給webservice
感謝您的信息。我會研究這些鏈接,但乍一看它們看起來不過是基於接口的包裝器。這很好,而且這可能是我反正會採取的策略(或類似的策略),但我很好奇爲什麼這種類型的方法本身不是EF本身可用的。只有MSFT真的知道,但它是一個嚴重的即將到來的恕我直言(ORM本身不是即插即用的即插即用)。 – 2012-07-26 12:10:04