[英]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.