我定義我的接口在基礎設施層,使用依賴注入,但是現在問題的基礎設施層,我怎麼能解決您在使用的DbContext接口的依賴性不增加參考EF DLL,在infrasturcure層和服務層。拆除聯軸器和
拆除聯軸器和
回答
如果您需要將EF完全隱藏在您的應用程序中,您需要使用repository pattern,將EF隱藏在存儲庫後面並生成(或寫入)POCO實體。
如果你更務實,你可以use generic repositories with IQueryable support,它允許一個偉大的開發和單元測試經驗,但什麼選擇取決於你。
您可以修改T4文件(又名T4模板或.TT文件)與上下文一起創建的接口,甚至他們分成用於兩個單獨的T4文件,所以你可以把它們放在單獨的組件。您也可以使上下文返回IQueryable而不是ObjectQuery,但是...
爲了編寫運行在數據庫而不是內存中的優化查詢,查詢必須考慮到它們下方的技術,您不能編寫通用查詢,單元測試它們在內存列表中,然後期望它們能夠正確轉換爲SQL,並且無例外地高效運行。 - 您必須在真實數據庫上測試您的查詢(使用演示數據)。
您應該做的是實現將DAL技術從其上層隱藏起來的服務,但在其實現中使用EF的全部功能以儘可能高效地工作。
可以使用測試數據庫(例如,使用由測試類創建和啓動的LOCALDB實例)對這些服務進行模擬,以測試它們上方的層以及服務本身可以與EF的使用一起進行測試。
幾個許多培訓相關鏈接:
Generic Repository With EF 4.1 what is the point
ASP.NET MVC3 and Entity Framework Code first architecture
Is UnitOfWork and GenericRepository Pattern redundant In EF 4.1 code first?
https://softwareengineering.stackexchange.com/questions/133448/unit-integration-testing-my-dal
- 1. Laravel靜態立面和聯軸器
- 2. 態關聯和拆分表
- 3. 拆分和聯接問題
- 4. 移調和拆除
- 5. 拆除銷燬控制器
- 6. Git拆分和清除
- 7. PyQtGraph網格聯軸
- 8. 分別去除NA和索引標籤的X軸和Y軸
- 9. 消除軸消除
- 10. 樞軸和過濾器
- 11. 拆除容器整個表單
- 12. 拆分關聯數組
- 13. 除了軸(R)
- 14. 在boost.test中反覆設置和拆除?
- 15. 使用SimpleHtmlDom,如何拆除和更換
- 16. C#如何拆除和清理
- 17. 拆列成行,不是經典樞軸
- 18. 拆分四元數到軸旋轉
- 19. Grails的刪除和級聯
- 20. 級聯更新和刪除
- 21. NHibernate和級聯刪除
- 22. Python - 刪除軸刻度標籤,保留刻度和軸標籤
- 23. R - 基線圖 - 如何去除X軸和Y軸線
- 24. 用matplotlib去除x軸和y軸的黑線
- 25. 刪除樞軸標題和標題
- 26. 從jqplot中刪除x和y軸線
- 27. Matplotlib圖:刪除軸,圖例和空白
- 28. SQLite的刪除列和級聯刪除
- 29. PrimeFaces拆分刪除
- 30. 刪除軸刻度