0

我已經做了一點與TDD ASP.Net MVC的Linq編程,並喜歡它。 Digressing,我現在正在學習webforms對存儲的特效,不能使用linq。我想保留一些與MVC相關的鬆耦合和可測試性。幫助設計我自己的粗略DataContext

我沒有時間學習和設置依賴注入基礎結構,所以我創建了一個對象工廠,可以根據需要創建一個對象工廠,以便創建模擬或實際實例。

這種方法的問題是工廠提供了我的測試庫的新實例,所以當實體A請求實體B的存儲庫時,它會得到一個新的實例,而不會在我的單元測試環境中進行更改 - 這是問題。由於我的測試實例沒有持久性機制,而且我沒有使用依賴注入,所以我需要一種讓實體A訪問我的單元測試的當前數據上下文的方式,以便它可以獲取實體B的髒存儲庫。對於桌面應用程序,我'd通常創建我的dataContext作爲一個單身人士,但由於併發問題與網絡應用程序,我已經排除了。

我正在尋找一個好的模式來代替。作爲一個停止差距,我要求所有的存儲庫和業務對象都用數據上下文實例化,創建一種層次結構,其中dataContext用dc實例化存儲庫,然後用dc實例化業務對象。

我還沒有使用複合模式,繼承或接口(除了嘲笑)。我不是一個OO程序員,但這看起來很醜。有沒有人有任何好的模式建議,我應該遵循,可以整理我的解決方案?

TIA

+0

你確定你不能使用LINQ,因爲存儲過程? LINQ to SQL確實支持它們。 – 2010-01-23 12:37:44

+0

是的 - 要求說'沒有linq' – 2010-01-23 14:08:58

回答

0

查找數據映射器模式,應該有大量的例子擺在那裏,這是我們使用的方法和它的作品很適合我們。

+0

好的,這讓我領先。 http://martinfowler.com/eaaCatalog/dataMapper.html描述了我創建的存儲庫,但不是上下文問題(也許我需要這本書)。 「...數據映射器本身對域層來說甚至是未知的。」我想知道如何在不立即加載對象圖中的所有依賴關係的情況下實現這一點。 – 2010-01-24 23:22:35