1

什么是型号?

我是一名 ASP.Net WebForms 开发人员。我已经学习 MVC 几天了。

我可以理解 Controller 和 View 的概念,但什么是 Model ?

是数据吗?它必须与 LINQ 一起使用还是我们可以使用传统的存储过程?

4

5 回答 5

2

模型表示您的域模型或数据。它不一定是 LINQ 对象。您可以为您的域模型创建POCO类,并使用任何数据访问方法向其中填充数据。为此,您可以使用 LinqtoSQL 或 EntityFrameWork或 Plain ADO.NET。这完全取决于你。

当您查找 MVC 示例时,您大多会看到带有 LINQ to SQL 或 EntityFramework 的示例代码/程序。这些是帮助开发人员避免将所有映射代码从 DataReader 写入 POCO 类的 ORMS。

请记住,MVC 并不担心数据访问方法是什么。MCV 是将这些不同的关注点分成不同的层的开发模式。

于 2012-11-30T05:22:06.597 回答
2

在抽象层面,Model就是与数据库和数据交互。

通过 LINQ 或其他一些传统存储过程与数据库进行交互没有硬性规定。这完全取决于上下文。

顺便说一句,当您遵循Skinny Controller and Fat Model方法时,业务逻辑可能会进入Model,或者您可以开发Service layer来处理业务逻辑但我更喜欢在模型中拥有业务逻辑。

于 2012-11-30T05:21:22.370 回答
1

1)是的,它与数据有关。

模型是表示数据甚至活动的对象,例如数据库表或什至是一些车间生产机器过程。

2)从技术上讲,您可以通过 Linq OR 存储过程获得它。

于 2012-11-30T05:22:24.090 回答
1

模型是有关您的数据的唯一、确定的数据源。它包含您存储的数据的基本字段和行为。通常,每个模型都映射到一个数据库表。

于 2012-11-30T05:25:19.933 回答
1

是数据吗?

通常是数据和行为。当你开始设计你的模型时,我建议完全忘记“数据库”。领域驱动设计这本书就是一个很好的例子。

它必须与 LINQ 一起使用还是我们可以使用传统的存储过程?

尝试创建您的模型以保持无知。很多答案都提到了数据库,但理想情况下,模型不应该知道它是如何持久化的。在某些情况下,模型的某些部分并非所有部分都将被保留。看看基格源。它显示了模型和持久性之间的清晰分离。它显示了将 EF 和 Linq 实现为两个不同的选项。

IMO,《ASP.NET MVC in Action》书籍很好地展示了 MVC 的不同部分,并讨论了不同的“模型”、ViewModel 与实体模型等。

编辑:也许问题应该是,在(领域驱动设计 || 数据驱动设计)中,模型是什么?

于 2012-11-30T05:35:39.603 回答