c# - 大型 ASP.NET MVC 项目中的模型怎么样

标签 c# asp.net-mvc entity-framework architecture

我一直在研究如何将 ASP.NET MVC 和 Entity Framework 一起用于一个相当大的项目。 大多数示例通过将 .edmx 文件移动到新的 DAL 项目来将其与 MVC 项目分开。在此项目中,您还可以找到存储库和接口(interface)。

虽然这种方法对我来说非常有意义,但有一件事我似乎无法弄清楚:MVC 中的模型怎么样?在大多数示例中, Controller 直接从 DAL 项目处理存储库接口(interface),因此不再使用 MVC 模型?或者继续使用它们是个好主意,但将它们映射到 Controller 中?

最佳答案

有两种类型的模型:

  • 领域模型
  • 查看模型

领域模型代表您的领域实体。它们可能是从您的数据库自动生成的 EF 类,或者来自其他地方,例如从您正在使用的 WCF 服务生成的代理。这些应该位于您的域层中。

另一方面,查看模型位于 ASP.NET MVC 项目的 Models 文件夹中。这些是您为每个 View 定义的特定类。 Controller 操作将查询您的 DAL 层以获取一个或多个域模型并实例化您为要从此 Controller 呈现的给定 View 专门定义的 View 模型。所以一个 View 模型可以保存来自多个域模型的信息(只是因为在给定的 View 中你需要所有这些信息)。然后 Controller 将 View 模型传递给 View 进行显示。

关于c# - 大型 ASP.NET MVC 项目中的模型怎么样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10698884/

相关文章:

c# - 在运行时将实体映射更改为另一个 "unknown"表

c# - 通过 C# 访问 sqlite 数据库时相对路径不起作用

c# - MVC 中的 Crystal 报表

c# - 在我自己的页面中显示 ELMAH 错误详细信息?

Javascript 数组发送到 asp.net MVC Controller

entity-framework - 如何摆脱 "An entity object cannot be referenced by multiple instances of IEntityChangeTracker"?

c# - XPath 在 C# 中无法正常工作

c# - 高级安装程序损坏的注册表路径

c# - ComboBox.ValueMember 和 DisplayMember

mysql - Entity Framework 数据库不可知开发