[英]Repository / UoW - To use or not to use?
我知道這已經做了一百萬次,但我仍然有兩種想法:
看起來UoW / Repository層是多余的,因為你可以模擬DbContext等。這將使實現簡單並使服務更接近EF似乎更通用。
有沒有人對此有任何好的建議?
我遇到的一個問題是,我將使用Ninject來連接它。 在網絡方面,如果我想將DbContext注入服務,則需要引用EF。 這似乎是錯的。
kernel.Bind<FunkySoftwareContext>().ToSelf().InRequestScope();
有沒有辦法抵消這種情況?
取決於你是否想要正確的抽象。
服務層不應公開數據庫實體。 它應該暴露適當的業務/域模型。 它們可能看起來也可能看起來不像db實體。
imho這就是存儲庫模式的好處。 它采用業務模型表示並將其轉換為數據庫/ orm可以使用的內容(反之亦然)。
但是,如果您已經確定從Entity框架加載的對象是您的域/業務模型的完美表示,那么請務必繼續並跳過存儲庫。
我在這里寫了一篇博客文章: http : //blog.gauffin.org/2012/06/protect-your-data/
(這將是一個評論,但它變得太大了!)如果你有2個問題,你應該問2個問題。 如果這是一個Ninject問題,我會回答它,但標題不是。
在ninject方面,請參閱我應該在哪里注射Ninject 2+(以及如何安排我的模塊?) (包括鏈接到副本)。
總結是單個組合根管理到綁定過程是正確的,所以最終你會得到一些東西 (參見@jgauffin答案),這將是InRequestScope
,並且正確地說它在CR中。
其他方法(閱讀所有UOW MVC Repository InRequestScope Qs&As)歸結為只將業務層服務類注入到Controller類中
IDisposable
一直向下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.