在MVC中,ORM是否代表模型?

时间:2009-05-07 20:43:39

标签: model-view-controller model

在MVC中,ORM是否与模型相同或只是模型的设计方式?换句话说,只要你得到数据,“模型”就不关心你如何获得数据。或者,“模型”是否暗示我的代码中不再有一堆SQL语句,就像表单后面的代码一样?还有别的吗?

谢谢。

3 个答案:

答案 0 :(得分:8)

不,ORM是将模型映射到数据库的东西,反之亦然。

详细说明,您将在代码中创建模型以表示Domain Model(即问题域的各种元素),然后配置ORM(对象关系映射器)以将其映射到数据库。即生成将根据您提供给它的模型对象更新数据库的SQL语句。

我可以理解一些混淆,因为有些工具(LINQ to SQL是一个)实际上为您在设计器中生成模型类。这不是纯粹的ORM,如NHibernate,您可以在其中提供ORM普通旧对象和它使用的一些映射配置(通常与反射结合使用),以自动生成数据库的SQL语句。

答案 1 :(得分:1)

如果您想查看使用ORM的MVC的真实世界实现,请查看基于MS ASP.NET MVC,Nhibernate和存储库模式的S#arp Architecture。< / p>

答案 2 :(得分:0)

该模型应尽可能与后端数据存储技术分离。 我认为这是一篇非常好的文章,讨论了数据访问层,DTO等之间的关系。http://msdn.microsoft.com/en-us/magazine/dd263098.aspx