Asp.MVC我们可以从模型汇编中调用数据库层吗?

时间:2012-12-21 14:07:24

标签: asp.net-mvc-3 design-patterns

我需要从架构的角度来了解它是否是一种正确的方法。

我正在研究MVC项目,我有一个单独的数据层组件和另一个模型组件。这两个程序集都在MVC项目中引用。

现在出现了一个场景,我需要在模型汇编中从数据库中获取数据注释字符串,是否可以在模型汇编中引用数据层并从数据库中获取字符串或者是否有更好的方法。

请建议

1 个答案:

答案 0 :(得分:1)

与设计问题一样,答案是“它取决于”:)

我有一个项目,其中完全相同的实体用作模型,并且作为数据实体,因此在UI(ASP.NET MVC)和数据层(EF 4.3)中使用基本相同的数据注释。有用。好处是它在整个系统中是一致的(Account对象意味着到处都是完全相同的东西),缺点是任何其他模型逻辑,无论是面向数据库(例如导航属性)还是面向UI(例如{ {1}}类的{1}}属性将混合在同一个地方。

我有另一个项目,其中UI层的模型与数据层完全分离,通过管理层进行通信。有用。这里的优势在于每层都非常清晰,其职责定义非常明确。然而,缺点是许多管理代码是管道代码,但不够简单,无法自动生成。此外,任何更改(例如,向实体添加文本字段)都需要在更多位置进行更改。一个非常简单的评论是,开发人员之间的沟通受到一些“帐户”类(FullNameAccountAccountViewModel等)的影响而受到一定的阻碍。

所以,我的观点是,做一些与您当前架构最相符的事情。