5

我認爲MS方式的人比我更聰明。我試圖構建/測試一個幾乎遵循this方法的存儲庫,只是我想寬鬆地耦合存儲庫中的ObjectContext依賴項。我發現,爲了做到這脫鉤我需要跳了很多籃球的,如圖this article.Even這種方法很難用時爲什麼ObjectContext類不是從某個接口派生的?

  1. 從現有的數據庫中有一個EDMX工作
  2. 您有一個圍繞ObjectContext接口構建的通用存儲庫,IObjectSet雖然單元測試想要僞造這個對象上下文,並將所有操作保留在內存中。考慮測試存儲庫。

現在真正的問題是,爲什麼ObjectContext的創建者決定不使用IObjectContext?

我希望我的問題是有道理的,如果有人能證明它並沒有顯示我的方式,我會很高興。

在此先感謝!

+1

只是想指出,因爲在EF4中一切都基於模板代碼生成,所以定製模板以發出ObjectContext可以實現的接口是相當容易的。 – 2010-09-06 07:44:02

+0

你的問題是有道理的,但我很擔心這是MS的問題。 – 2010-09-06 11:23:56

+0

@Alex Paven:如果有任何特定的有用鏈接可以與我分享,我會非常感激。 – Perpetualcoder 2010-09-07 03:35:02

回答

5

由於上下文是局部類,你可以很容易地將接口添加到它在一個單獨的文件: public partial class YourContext : IMyCustomInterface,並且你可以把IMyCustomInterface你想從生成的ObjectContext使用任何簽名。

或者你可以去推薦(通常)更推薦的方式,比如在this blog post(整個系列文章很有意思並且相關)或this one中將ObjectContext進一步抽象爲存儲庫。

+0

+1,特別是提醒我'YourContext'是'partial' :-)。 – 2013-08-29 18:49:53

相關問題