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