最简单的方法是将NHibernate用于官方的"ASP.Net MVC 3入门"教程

Jen*_*ens 5 postgresql nhibernate entity-framework asp.net-mvc-3

澄清更新的问题 - 开始


官方的MVC 3入门教程中,在我看来,我们要做的就是让ORM正常工作是两个步骤.

首先添加简单的MovieDBContext代码,如第4部分末尾所述.

public class MovieDBContext : DbContext 
{
    public DbSet<Movie> Movies { get; set; } 
}
Run Code Online (Sandbox Code Playgroud)

.. 在第5部分开头第二步,只需右键单击Controllers文件夹,我们就可以自动生成一个实现CRUD()的MoviesController - 使用Entity Framework的功能,只需告诉使用哪个Model.
现在,当使用Web应用程序时,我们已经可以从数据库中编写和读取.

使用NHibernate而不是使用Entity Framework为我们的Movie-Model完成这个最简单(或简单)的方法是什么?


澄清更新的问题 - 结束





原始问题(仅适用于其他背景信息):


我正在尝试创建一个使用NHibernate和Postgres的ASP.Net MVC 3应用程序.

背景资料

使用Visual Web Developer Express在Windows上完成开发,生产环境将是/应该是Linux + Mono.

迄今为止有效的步骤:

  • 使用Npgsql和Postgres作为数据库的ASP.Net动态数据实体Web应用程序.在Windows开发机器上成功运行. (遵循本教程)
  • 尚未使用数据库/模型的ASP.Net MVC 3应用程序:在Windows开发计算机上成功运行,并使用Mono和Nginx部署到Linux生产环境.(仅作为我自己的概念证明,而不是公众使用的网络应用程序.)
  • 一个ASP.Net MVC 3应用程序,其中一个模型使用SQL Server Express作为DB.在我的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; } 
}
Run Code Online (Sandbox Code Playgroud)

在第5部分开头,我们通过简单地告诉使用哪个模型来使用实体框架自动生成CRUD-stuff.(MoviesController.cs,Create.cshtml,Delete.cshtml,Details.cshtml,Edit.cshtml和Index.cshtml)

所以我使用Entity Framework和SQL Server Express,但是如何使用NHibernate实现相同的结果呢?(不一定要立即使用postgres,坚持使用SQL-Server作为第一步就可以了)(希望有类似的简单,但获得结果本身会很棒)
我发现了很多旧东西,我会怎样手动映射东西,但是使用NHibernate for MVC 3实现这一目标的最新标准方法是什么?

(我发现最接近的是这个帖子中提到的源代码,但它解压缩了64 MB我得到了几个"项目没有成功加载" - 错误并且作者说他使用MVC 2所以我认为它有点超过我的头脑一个完整的NHibernate菜鸟.)

我认为展示如何做到这一点对其他人来说也非常有用,因为原始教程非常容易理解,并且作为http://www.asp.net/上MVC 3应用程序开发的官方起点链接起来. mvc("你的第一个ASP.NET MVC应用程序").所以我认为这将是一个关于如何将NHibernate与MVC 3一起使用的最新例子.

Chr*_*ris 0

建议,不要沉迷于教程向您展示的所有自动内容。微软只是想表明,如果你不尝试做任何独特的事情,你可以轻松地开始工作。

现在来说说你的情况。当您制作控制器时,您希望将该控制器与您在某处创建的模型类型绑定。对于 nHibernate,我认为您将手动创建这些 POCO,并且您正在使用多种方法之一通过 nHibernate 将这些 POCO 映射到数据库。

您将无法使用实体框架选项,因为它们依赖于框架的功能来提供有关对象、数据库等的信息。最简单的事情就是制作一个控制器,它可以为您提供 CRUD 选项或者使用空控制器来构建您自己的 ActionResults。

希望这对您有所帮助,并祝您的项目好运。