0

我定義我的接口在基礎設施層,使用依賴注入,但是現在問題的基礎設施層,我怎麼能解決您在使用的DbContext接口的依賴性不增加參考EF DLL,在infrasturcure層和服務層。拆除聯軸器和

回答

0

您可以修改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