2010-08-12 32 views
1

我正在嘗試對db進行存根調用。基本思想是這樣的一行代碼:如何使用Moles存根實體框架存儲過程調用?

Person person = (from p in this.Entities.FindPerson("Smith") select p).FirstOrDefault(); 

以我想要的方式返回對象,而不會去db。 FindPerson(字符串)代表一個存儲過程(以防萬一)。

我試圖覆蓋FindPerson,但我需要返回ObjectResult。這是一個沒有公共構造函數的密封類。我所有試圖創建它的嘗試都是以調用db結束的。

回答

2

我一直在尋找同一個問題的答案。繼論壇主題清理出來給我: msdn forum

基本上他們說不要撥打電話直接EF,而是爲了讓自己的代碼可測試從業務層抽象數據層。

你可以通過Repository模式或類似的方法做到這一點,然後使用依賴注入來注入一個模擬。從的Peli

報價(微軟的員工,參與了 「Pex的」 程序):

痣應該是最後的手段 解決方案。優選的方法是使用一個 可測性設計,即,數據層和業務 層等之間的抽象 ...

HTH

乾杯