需要有关在n层应用程序中使用存储库模式的建议

时间:2013-07-14 01:45:03

标签: asp.net-mvc-4 repository unit-of-work onion-architecture

我有一个使用ASP.NET MVC开发的Web应用程序。

应用程序遵循nth-tier architecture,我将应用程序划分为4个不同的项目,分别是模型,核心,框架和Web应用程序。

模型,核心和框架是DLL,模型只包含我的POCO类,Core包含我的DbContext,存储库和工作单元实现,而我的框架项目包含将由我的MVC Web应用程序直接使用的类,如动作链接扩展,自定义视图引擎等

除了我的框架,我创建了一个名为service的类,它使我的核心DLL中的存储库进行方法调用,服务类中的方法被我的Web应用程序调用。

我的问题是:通过我的框架DLL中的服务类将方法调用从Web应用程序调用到存储库是否理想,或者只是直接调用Core DLL?

1 个答案:

答案 0 :(得分:2)

除非您需要,否则不要添加抽象层。如果您没有充分的理由在中间添加服务层,您将最终实现Poltergeist anti-pattern,其唯一目的是将信息传递给另一个对象。

一般情况下,直接调用您的存储库是完全正常的,因此您必须分析是否预见到任何特定的限制,不允许使用此模式。