ASP.NET MVC4中使用NHibernate

1:下载安装NHibernate

打开 VS 2012新建一个 MVC4项目. 在项目名称上右击选择Manage NuGet Packages。你会看见 Manage Nuget Packages 页面. 在搜索框输入‘NHibernate’ 可以得到以下结果:

选择第一个并安装,安装完成后会引入以下两个.DLL文件

  • NHibernate

  • Lesi.Collections

2:编写Model层,你需要决定模型中的对象和它们之间的关系。现在来定义一个应用程序,用于维护员工记录(很简单,但你可以扩展的)。让我们添加新的类模型。如下所示:

 

该类包含属性employeeinfo。这些属性将被用来与表的列映射。这些属性必须被定义为虚拟。

3:一旦映射模型类准备好了,现在就可以建数据库保存数据。对于这个简单的应用程序,我们将使用一个名为Company的SQL数据库。表的名称是employeeinfo,创建如下所示:

4:设置映射employeeinfo.HBM.XML

在Models中建立NHibernate 文件夹,在NHibernate下建立Configuration 、Mappings两个文件夹。

映射文件的命名规则默认是< modelName >.hbm.xml,在我们的案例中,它取名为employeeinfo.HBM.XML,保存在Models\Mappings,我们需要在项目中将XML文件属性改为“嵌入的资源的“。这个文件映射模型类与数据库表列的约束的主键,数据类型等文件,如下所示:

上述XML文件是employeeinfo类和属性之间的映射的列。

注:默认情况下没有智能代码提示,可以实现添加nhibernate-configuration.xsd和nhibernate-mapping.xsd文件到VS的以下路径:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Xml\Schemas,就会有代码提示。

定义了

6:现在是时候添加一些代码来做对数据库表的映射模型进行CRUD操作。NHibernate提供用于执行操作的各个类和接口,其中一些是用于实现他们如下:

ISession单线程,生命期较短的对象,代表应用程序和持久化层之间的一次对话。封装了一个ADO.NET连接

ISessionFactory:它是Session的工厂,是ConnectionProvider的客户。可以持有一个可选的(第二级)数据缓存,可以在进程级别或集群级别保存的可以在事物中重用的数据。。该方法的opensession()”提供了创建Session的功能每个数据库要求一个会话工厂。执行是线程安全的,可以一直到应用程序的生存时间。

正如你可以看到下面的代码,我们必须配置对象提供的配置文件的绝对路径,也为其提供了目录信息的所有映射文件将被保存(在opensession法)

iquery:这表示是NHibernate查询一个对象。

生成项目并确保它没有错误。

7:添加新控制器,命名为“employeeinfocontroller”。添加下面的控制器类中的动作方法:

每个动作方法调用的employeeinfodal类定义的方法。现在只要为每个Action添加视图方法,就可以运行连接到得到以下结果:

ASP.NET MVC4中使用NHibernate的更多相关文章

  1. Asp.Net MVC4开发二: Entity Framework在Asp.Net MVC4中的应用

    ORM作为一种数据库訪问机制已广泛地应用于各种项目其中,在.Net开发中,应用比較广泛的ORM框架大致有以下几个: 官方支持的有:Linq to SQL.Entity Framework.三方的有:N ...

  2. ASP.NET MVC4中的bundles特性引发服务器拒绝访问(403错误)

    在ASP.NET MVC4中微软引入了bundles特性,这个特性可以将服务器端的多个Javascript或多个css文件捆绑在一起作为一个单一的URL地址供客户端浏览器调用,从而减少了页面上Http ...

  3. WebSocket在ASP.NET MVC4中的简单实现

    WebSocket在ASP.NET MVC4中的简单实现 2013-12-21 20:48 by 小白哥哥, 810 阅读, 3 评论, 收藏, 编辑 WebSocket 规范的目标是在浏览器中实现和 ...

  4. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

  5. 在ASP.NET MVC4中实现同页面增删改查,无弹出框02,增删改查界面设计

    在上一篇"在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建"中,已经搭建好了Repository层,本篇就剩下增删改查的界面了......今 ...

  6. ASP.NET MVC4中的App_start中BundleConfig的介绍使用

    在BundleConfig.cs中,指定CSS和JS,主要用来压缩JS和CSS   在ASP.NET MVC4中(在WebForm中应该也有),有一个叫做Bundle的东西,它用来将js和css进行压 ...

  7. ASP.NET MVC4中对JS和CSS的引用

    https://www.cnblogs.com/madyina/p/3702314.html ASP.NET MVC4中对JS和CSS的引用又做了一次变化,在MVC3中我们这样引用资源文件: < ...

  8. ASP.NET MVC4中调用WEB API的四个方法

    http://tech.it168.com/a2012/0606/1357/000001357231_all.shtml [IT168技术]当今的软件开发中,设计软件的服务并将其通过网络对外发布,让各 ...

  9. WebSocket在ASP.NET MVC4中的简单实现 (该文章转自网络,经尝试并未实现,请大神指点。)

    WebSocket 规范的目标是在浏览器中实现和服务器端双向通信.双向通信可以拓展浏览器上的应用类型,例如实时的数据推送.游戏.聊天等.有了WebSocket,我们就可以通过持久的浏览器和服务器的连接 ...

随机推荐

  1. 毕业后的第二份工作:进入国外 在新加坡工作 每月一次18K

    --訪传智播客成都校区12.26就业班学员 杨洋 姓名:杨洋 毕业院校:重庆科技学院 专业:电子信息技术与project 就职公司:新电科技 岗位:Javaproject师 月薪:18K 上午.他刚去 ...

  2. jQuery.extend()方法和jQuery.fn.extend()方法

    jQuery.extend()方法和jQuery.fn.extend()方法源码分析 这两个方法用的是相同的代码,一个用于给jQuery对象或者普通对象合并属性和方法一个是针对jQuery对象的实例, ...

  3. 从Ubuntu12.04升级到Ubuntu 14.04之后,系统将无法启动

    进入Ubuntu启动界面.通常有几个选项,Ubuntu,Ubuntu先进... 输入e键,进入grub的设置界面.将里面的ro改动为rw就可以. 以上能够启动,临时性的设置 可是为了永久保存这个设置, ...

  4. .net mvc ajax list post

    http://stackoverflow.com/questions/13242414/passing-a-list-of-objects-into-an-mvc-controller-method- ...

  5. 在线预览Excel

    遇到的问题各种多 <system.web>        <identity impersonate="true" userName="Administ ...

  6. MVC验证11-对复杂类型使用jQuery异步验证

    原文:MVC验证11-对复杂类型使用jQuery异步验证 本篇体验使用"jQuery结合Html.BeginForm()"对复杂类型属性进行异步验证.与本篇相关的"兄弟篇 ...

  7. PHP 做 RSA 签名 生成订单(支付宝例子)

    /组合签名 $a=time(); $b=substr($a, 1); //生成随机订单号 $orderid= $b.mt_rand(10000,99999); //合作身份者id,以2088开头的16 ...

  8. SqlServer-COMPUTE BY

    原文:SqlServer-COMPUTE BY COMPUTE BY子句可以通过同一个select语句即查看明细行,又查看汇总行.可以计算子组的汇总值,也可以计算整个结果集的汇总值 COMPUTE 子 ...

  9. HBuilder js 自定义代码块

    =begin 本文档是HBuilder预置的js代码块的文件.注意不要把其他语言的设置放到js里来. 如果用户修改此文档,HBuilder升级后会覆盖用户的修改,建议进入菜单 工具→扩展代码块 扩展相 ...

  10. UVA Graph Coloring

    主题如以下: Graph Coloring  You are to write a program that tries to find an optimal coloring for agiven ...