模型视图控制器。什么是模特?

时间:2012-11-30 05:18:54

标签: asp.net asp.net-mvc

什么是型号?

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

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

是数据吗? 是否必须使用LINQ,或者我们可以使用传统的存储过程?

5 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

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

  

MODEL是表示数据甚至活动的对象,例如一个数据库   桌子或甚至一些工厂生产机器过程。

2)从技术上讲,你可以通过Linq或Stored过程获得它。

答案 3 :(得分:1)

模型是关于数据的单一,权威的数据来源。它包含您要存储的数据的基本字段和行为。通常,每个模型都映射到一个数据库表。

答案 4 :(得分:1)

  

是数据吗?

一般来说,这是数据和行为。当你设计你的模型时,我建议完全忘记“数据库”。 Domain Driven Design本书就是一个很好的例子。

  

是否必须使用LINQ或我们可以使用传统存储   程序?

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

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

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