什么是型号?
我是一名 ASP.Net WebForms 开发人员。我已经学习 MVC 几天了。
我可以理解 Controller 和 View 的概念,但什么是 Model ?
是数据吗?它必须与 LINQ 一起使用还是我们可以使用传统的存储过程?
我是一名 ASP.Net WebForms 开发人员。我已经学习 MVC 几天了。
我可以理解 Controller 和 View 的概念,但什么是 Model ?
是数据吗?它必须与 LINQ 一起使用还是我们可以使用传统的存储过程?
模型表示您的域模型或数据。它不一定是 LINQ 对象。您可以为您的域模型创建POCO类,并使用任何数据访问方法向其中填充数据。为此,您可以使用 LinqtoSQL 或 EntityFrameWork或 Plain ADO.NET。这完全取决于你。
当您查找 MVC 示例时,您大多会看到带有 LINQ to SQL 或 EntityFramework 的示例代码/程序。这些是帮助开发人员避免将所有映射代码从 DataReader 写入 POCO 类的 ORMS。
请记住,MVC 并不担心数据访问方法是什么。MCV 是将这些不同的关注点分成不同的层的开发模式。
在抽象层面,Model
就是与数据库和数据交互。
通过 LINQ 或其他一些传统存储过程与数据库进行交互没有硬性规定。这完全取决于上下文。
顺便说一句,当您遵循Skinny Controller and Fat Model
方法时,业务逻辑可能会进入Model
,或者您可以开发Service layer
来处理业务逻辑但我更喜欢在模型中拥有业务逻辑。
1)是的,它与数据有关。
模型是表示数据甚至活动的对象,例如数据库表或什至是一些车间生产机器过程。
2)从技术上讲,您可以通过 Linq OR 存储过程获得它。
模型是有关您的数据的唯一、确定的数据源。它包含您存储的数据的基本字段和行为。通常,每个模型都映射到一个数据库表。
是数据吗?
通常是数据和行为。当你开始设计你的模型时,我建议完全忘记“数据库”。领域驱动设计这本书就是一个很好的例子。
它必须与 LINQ 一起使用还是我们可以使用传统的存储过程?
尝试创建您的模型以保持无知。很多答案都提到了数据库,但理想情况下,模型不应该知道它是如何持久化的。在某些情况下,模型的某些部分并非所有部分都将被保留。看看基格源。它显示了模型和持久性之间的清晰分离。它显示了将 EF 和 Linq 实现为两个不同的选项。
IMO,《ASP.NET MVC in Action》书籍很好地展示了 MVC 的不同部分,并讨论了不同的“模型”、ViewModel 与实体模型等。
编辑:也许问题应该是,在(领域驱动设计 || 数据驱动设计)中,模型是什么?