Asp.net mvc 3 我们可以从模型组件调用数据库层吗?

Asp.net mvc 3 我们可以从模型组件调用数据库层吗?,asp.net-mvc-3,design-patterns,Asp.net Mvc 3,Design Patterns,我需要知道从架构的角度来看,这是否是一种正确的方法 我正在从事MVC项目,我有一个单独的数据层组件和另一个模型组件。这两个程序集都在MVC项目中引用 现在出现了一个场景,我需要在模型组件中从数据库中获取数据注释字符串,在模型组件中引用数据层并从数据库中获取字符串是否合适,或者是否有更好的方法 请像往常一样建议设计问题,答案是“视情况而定”: 我有一个项目,其中使用完全相同的实体作为模型和数据实体,因此在UI(ASP.NET MVC)和数据层(EF 4.3)中使用基本相同的数据注释。它起作用了。优

我需要知道从架构的角度来看,这是否是一种正确的方法

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

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


请像往常一样建议设计问题,答案是“视情况而定”:

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

我还有一个项目,其中UI层的模型与数据层完全分离,通过管理层进行通信。它起作用了。这里的好处是每一层都非常清晰,其职责也非常明确。然而,缺点是很多管理代码都是管道代码,但不够简单,无法自动生成。此外,任何更改(例如,将文本字段添加到实体中)都需要在几个地方进行更改。一个不平凡的评论是,开发人员之间的交流由于存在一些“Account”类(
AccountViewModel
AccountEntity
AccountManager
等)而受到一定程度的阻碍


所以,我的观点是,做任何看起来最符合您当前架构的事情。

也许我有误解,但在这种情况下,您的数据层不是已经有了对模型的引用吗?数据层是EF,所以不需要从业务层引用模型,我们称之为EF方法,将它们从模型中分配数据