ASP.NET MVC使用ORM开发

时间:2011-12-26 10:16:34

标签: asp.net-mvc-3 entity-framework nhibernate orm

使用ORM开发MVC时 我不喜欢ORM会在我的数据库中进行更改的想法。 我的应用程序是一个数据驱动的应用程序,数据库是我创建的第一件事。 这不是在模型和数据库中维护数据方案的开销吗? 我该如何管理它? 任何更适合这种工作方法的ORM?

2 个答案:

答案 0 :(得分:1)

  

我不喜欢ORM会在我的数据库中进行更改的想法

ORM不必对数据库结构进行任何更改。如果您有现有数据库,则只需使用它而无需任何自动更改。

  

这不是在模型和数据库中维护数据方案的开销吗?

您想如何在MVC中展示您的数据?您是否要使用表示数据库中数据的类?如果是,则说明ORM存在的原因。 ORM将关系数据从数据库映射到类=它为您加载它们并为您保留它们(=您不必处理数据库访问和SQL)。如果您打算使用面向对象的强类型方法,那么ORM将不会为您带来开销。

如果您不打算使用此类方法,则不必使用MVC。只需将ASP.NET与SQL数据源或ASP.NET动态数据一起使用即可。

  

任何更适合这种工作方式的ORM?

你没有特别的方法。

几乎每个ORM都有一些支持工具或扩展,允许您创建基本映射,有时还可以创建现有数据库中的类。在EF中,您只需将实体数据模型添加到项目中,然后在向导中选择应用程序中所需的表。

当然最后一段是简化的。每个ORM都有学习曲线和专长,所以它不会那么“简单”。

答案 1 :(得分:0)

对于.NET 4实体框架,工具让你双向前进;从模型生成数据库并从数据库生成模型。这些功能使您在实施变更管理协议时具有灵活性。我不确定NHibernate有哪些选项。

实体框架参考:

http://msdn.microsoft.com/en-us/library/bb386876.aspx

http://msdn.microsoft.com/en-us/library/bb399249.aspx

http://www.simple-talk.com/dotnet/.net-framework/entity-framework-4460---learn-to-create-databases-from-the-model/

两者的Stackoverflow比较:

Deciding between NHibernate vs Entity Framework?