参与有责任


谁都有责任开始和完成工作的单位在MVC架构?

有帮助吗?

解决方案

这不是一个控制器的责任,它违反 SRP 。控制器甚至不应该知道UOW可言。在幅材,每一个请求给UOW服务器通常使用。在这种情况下UOW应在请求结束被设置,并开始某处的请求的开始后(理想地启动UOW的应该是懒惰)。要做到这一点,最好的地方是使用Application_EndRequest和的Application_BeginRequest处理程序的Global.asax(或你的HttpApplication类)。结果 这可以用IoC框架可以轻松实现(我最喜欢的是温莎),请参见这个问题为实现细节。

其他提示

控制器。这得到的背景下,这样你就可以开始和完成的工作单元。例如每个请求的NHibernate的会议将需要你知道当请求已经开始和结束,所以你需要的情况下给你的请求。

我在松散耦合的体系结构的信徒。我控制器知道有关存储库,上下文或NOTHING的UnitOfWork。我创建了一个服务层(不知道这是正确的术语)控制器调用。该服务然后与储存库(DLL),以坚持所有数据的工作原理。

由于zihotki说,如果你把这个责任推给控制器,你就违反了SRP。这是一个数据操作面向模式,因此不应成为控制器的担忧...这将使它两种违法:一个用于SRP和anothrt对SoC的原则

至于谁的责任,这是由你的架构中定义的东西。所述StartRequest / EndRequest建议似乎足够固体。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top