如何解决MVC3设计-存储库模式和服务层
| 关闭。这个问题是基于意见的。它当前不接受答案。解决方法
在分层应用程序体系结构中,有一条基本规则要求您永远不要绕过层。如果直接从控制器查询存储库,则将违反该规则。
所以呢?你可以说。如果服务层没有任何价值,该怎么办?好吧,将来可能会...
您可以选择违反规则,但是它将不再是分层应用程序。也许也没关系-还有其他良好(甚至更好)的应用程序架构可用,但是我认为首先应该对总体架构做出决定,然后再坚持这一决定。否则,您将得到意大利面条代码-当它是分层应用程序时,我们称其为宽面条:)
,这取决于。如果您将来打算使用复杂的业务规则,则可以添加服务层。如果您的站点仅在服务层中执行很少或没有逻辑的CRUD操作,则可以直接调用存储层。
, 控制器应该能够通过存储库模式获取实体,还是必须从服务层检索数据。
理想情况下,控制器应仅使用本身依赖于一个或多个存储库的服务层,以便将一个或多个简单的CRUD操作聚合到业务操作中。在某些简单的应用程序中,有时可能不需要服务层,而让控制器直接使用存储库。
,总是一个问题,是什么适合您的需求以及您的风格是什么。对于我而言,我更喜欢从控制器操作访问服务层。然后,该服务将访问存储库模型。
public class UserController : MyServiceController<UserServices>
{
public ActionResult GetUser(int id)
{
var user = Service.GetUser(id);
return View(user);
}
}
public class UserServices : MyServices<User>
{
public User GetUser(int userId)
{
return Repository.Single(a=>a.Id == userId);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。