澄清更新的问题 - 开始
在官方MVC 3入门教程中,我认为我们只需要执行两个步骤就可以让ORM工作。
第一步是按照第4部分的结尾所述添加简单的MovieDBContext代码..
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
..并且在第5部分开始时是第二个,在Controllers文件夹上右键单击,我们可以自动生成一个MoviesController,使用Entity Framework实现CRUD()功能,只需告诉它要使用哪个模型。
现在当使用Web应用程序时,我们已经可以从数据库中读写。
相对于使用Entity Framework,使用NHibernate来处理我们的Movie-Model,最简单(或简单)的方法是什么?
澄清更新的问题 - 结束
原问题(仅供背景信息):
我正在尝试创建一个使用NHibernate和Postgres的ASP.Net MVC 3应用程序。
背景信息:
在Windows上使用Visual Web Developer Express进行开发,生产环境将是/应该是Linux+Mono。
到目前为止已经成功的步骤:
1. 使用Npgsql和Postgres作为数据库的ASP.Net Dynamic Data Entities Web应用程序。在Windows开发机上成功运行。(按照此教程) 2. 没有使用数据库/模型的ASP.Net MVC 3应用程序:在Windows开发机上成功运行,并使用Mono和Nginx部署到Linux生产环境中。(仅作为自己的概念验证,而不是公众使用的Web应用程序。)
3. 使用SQL Server Express作为数据库的模型的ASP.Net MVC 3应用程序。在我的Windows开发机上成功运行。(按照MVC 3入门教程)。
问题是什么?
到目前为止,我已经成功让Postgres与“动态数据实体Web应用程序”配合使用,但在MVC 3 Web应用程序中,我不知道从哪里或如何开始。对于最后提到的MVC-3-Movie-Webapp,我想使用NHibernate和Npgsql将数据库从SQL Server Express切换到Postgres(NHibernate因为Mono不支持实体框架)。当您查看第4部分的结尾时,有简单的MovieDBContext代码。
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
在第5部分的开头,我们使用Entity Framework自动生成CRUD-stuff,只需告诉它要使用哪个模型即可。 (MoviesController.cs,Create.cshtml,Delete.cshtml,Details.cshtml,Edit.cshtml和Index.cshtml)
所以我已经用Entity Framework和SQL Server Express实现了这个功能,但是我如何使用NHibernate实现相同的结果呢?(不一定立即使用postgres,先使用SQL-Server作为第一步也可以)(希望具有类似的简单性,但获得结果本身就很好) 我发现很多旧的东西和手动映射的方式,但是使用NHibernate为MVC 3实现这一点的最新标准方法是什么?
(我找到的最接近的东西是{{link2:this thread}}中提到的源代码,但它解压后有64 MB,我得到了几个“项目加载失败”错误,并且作者说他使用的是MVC 2,所以我认为对于完全不了解NHibernate的人来说有些困难。)
我认为展示这个过程对其他人也会非常有用,因为原始教程非常易于跟随,并且作为 MVC 3 应用程序开发的官方起点,链接在 http://www.asp.net/mvc 上(“您的第一个 ASP.NET MVC 应用程序”)。 因此,我认为这将是一个关于如何在 MVC 3 中使用 NHibernate 的很好的最新示例。