我是ASP.Net WebForms开发人员。 我已经学习MVC几天了。
我可以理解Controller和View的概念,但什么是模型?
是数据吗? 是否必须使用LINQ,或者我们可以使用传统的存储过程?
答案 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与实体模型等。
编辑:也许问题应该是,在(域驱动设计||数据驱动设计)中,模型是什么?