配置ASP.NET Nhibernate
web.config:配置sql server数据库
<configuration>
<configSections>
<!--NHibernate Section-->
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate"/>
<!--NHibernate Section End-->
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="NHibernate.Test">
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="connection.connection_string">
server=127.0.0.1;database=NHibernateSample;uid=sa;pwd=zhangwei
</property>
<property name="adonet.batch_size">10</property>
<property name="show_sql">true</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="use_outer_join">true</property>
<property name="command_timeout">60</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu
</property>
</session-factory>
</hibernate-configuration>
......
web.config:配置 Oracle 数据库
<configuration>
<configSections>
<!--NHibernate Section-->
<section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate"/>
<!--NHibernate Section End-->
</configSections>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="connection.driver_class">
NHibernate.Driver.OracleClientDriver
</property>
<property name="dialect">
NHibernate.Dialect.Oracle10gDialect
</property>
<property name="connection.connection_string">
Data Source=155ZNXJ;User ID=cxm;Password=cxm
</property>
<property name="proxyfactory.factory_class">
NHibernate.ByteCode.LinFu.ProxyFactoryFactory,
NHibernate.ByteCode.LinFu
</property>
<property name="show_sql">true</property>
<property name="query.substitutions">
true 1, false 0, yes 'Y', no 'N'
</property>
</session-factory>
</hibernate-configuration>
......
SessionFactory:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using NHibernate;
using NHibernate.Cfg; namespace MyMvcDemo.Nhibernate
{
public class SessionFactory
{
private ISessionFactory _sessionFactory; public SessionFactory()
{
_sessionFactory = GetSessionFactory();
} private void Init()
{
var config = new Configuration();
config.AddAssembly("MyMvcDemo.Nhibernate");
config.Configure();
_sessionFactory = config.BuildSessionFactory();
} private ISessionFactory GetSessionFactory()
{
if (_sessionFactory == null)
Init(); return _sessionFactory;
} public ISession GetSession()
{
return _sessionFactory.OpenSession();
}
}
}
Customer.hbm.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MyMvcDemo.Model" namespace="MyMvcDemo.Model.Customer">
<class name ="Customer" table="Customer" lazy="false">
<id name="CustomerId">
<generator class ="native"/>
</id> <property name="FirstName"/>
<property name ="LastName"/>
</class>
</hibernate-mapping>
Customer.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace MyMvcDemo.Model.Customer
{
public class Customer
{
public int CustomerId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Version { get; set; }
}
}
HomeController.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;
using NHibernate;
using NHibernate.Cfg;
using MyMvcDemo.Service;
using MyMvcDemo.Nhibernate; namespace MyMvcDemo.Controllers
{
public class HomeController : Controller
{
private readonly ISession _session;
readonly SessionFactory _sessionFactory = new SessionFactory();
private readonly CustomerService _customerService; public HomeController()
{
_session = _sessionFactory.GetSession();
_customerService = new CustomerService(_session);
} public ActionResult Index()
{
var customer = _customerService.GetCustomerById();
ViewData["Message"] = customer.FirstName + customer.LastName;
return View();
} public ActionResult About()
{
ViewData["Message"] = "Hello About";
return View();
}
}
}
CustomerService.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NHibernate.Cfg;
using NHibernate;
using MyMvcDemo.Nhibernate;
using MyMvcDemo.Model.Customer;
using MyMvcDemo.Service;
using NHibernate.Criterion; namespace MyMvcDemo.Service
{
public class CustomerService
{
private ISession _session;
public ISession Session
{
set { _session = value; }
} /// <summary>
/// 初始化Session
/// </summary>
/// <param name="session"></param>
public CustomerService(ISession session)
{
_session = session;
} /// <summary>
/// 添加Customer
/// </summary>
/// <param name="customer"></param>
public void CreateCustomer(Customer customer)
{
_session.Save(customer);
_session.Flush();
} /// <summary>
/// 根据id获取Customer
/// </summary>
/// <param name="customerid"></param>
/// <returns></returns>
public Customer GetCustomerById(int customerid)
{
return _session.Get<Customer>(customerid);
} public IList<Customer> GetCustomerByFirstName(string name)
{
return _session.CreateCriteria(typeof(Customer))
.Add(Restrictions.Eq("FirstName", name))
.List<Customer>();
}
}
}
Index.aspx:
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Home Page
</asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2><%: ViewData["Message"] %></h2>
<p>
To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>
</asp:Content>
运行结果:

配置ASP.NET Nhibernate的更多相关文章
- 在Linux(Ubuntu/openSUSE/CentOS)下配置ASP.NET(Apache + Mono)
[题外话] 闲的无聊竟然想尝试测试自己做的项目在不同操作系统上的性能表现,所以决定试试在Linux上部署Apache和Mono的环境.由于平时很少接触Linux,所以从网上找了几篇文章(附在相关链接中 ...
- 用"hosting.json"配置ASP.NET Core站点的Hosting环境
通常我们在 Prgram.cs 中使用硬编码的方式配置 ASP.NET Core 站点的 Hosting 环境,最常用的就是 .UseUrls() . public class Program { p ...
- [原创]IIS7.5下配置ASP+PHP环境及错误处理(0xc0000135)
IIS7.5下配置ASP+PHP环境及错误处理(0xc0000135) http://user.qzone.qq.com/93701178/blog/1398155812 操作系统更新至Win7或Wi ...
- 配置ASP.NET Web应用程序, 使之运行在medium trust
这文章会向你展示, 怎么配置ASP.NET Web应用程序, 使之运行在medium trust. 如果你的服务器有多个应用程序, 你可以使用code access security和medium ...
- 如何在IIS7下配置ASP+ACCESS环境
如何在IIS7下配置ASP+ACCESS环境 | 浏览:901 | 更新:2013-01-16 17:46 1 2 3 4 5 6 7 分步阅读 默认装完IIS7之后,使用ASP程序会发现提示数据库连 ...
- IIS配置ASP.NET和服务器错误页
以下两种方法均为全站出错处理 方法一: 1.在Web.config配置文件中<system.web></system.web>中添加<customErrors mode= ...
- Win7旗舰版中的IIS配置asp.net的运行环境
Win7旗舰版中的IIS配置asp.net的运行环境 以前弄过好多次,都没有成功,昨天晚上不知怎么地就成功了,借用我同学的一句话,这叫“灵光一闪”,废话不多说了,这个成功是有图有视频有真相地哈! ...
- window下appserv组合包配置asp标记风格与简短风格
php一共有四种编码风格 分别为 :XML风格,脚本分铬,简短风格,ASP风格 如果要配置asp标记风格与简短风格,需要在php.ini文件中配置. 打开文件的位置C:\ window\php.ini ...
- 图解win7中IIS7.0的安装及配置ASP环境
控制面板中“程序”的位置 “程序”中“打开或关闭Windows功能”的位置 如图,安装IIS7时需要选择要使用的功能模块 IIS7安装完成之后可以在开始菜单的所有程序中看到“管理工具”,其中有一个“I ...
随机推荐
- H5入门-xhtml+css2-第01节
<!-- 声明版本号,DOCTYPE html是html5版本 --> <!DOCTYPE html> <!-- 声明网页语言 en-英文 zh-中文 zh-cn中文 - ...
- HDU 5478 Can you find it(快速幂)
Problem Description Given a prime number C(1≤C≤2×105), and three integers k1, b1, k2 (1≤k1,k2,b1≤109 ...
- linux中ftp用户登录密码忘记了怎么修改
先来熟悉一下 vsftp 命令: 启动vsftp用命令: 1.service vsftpd start 重启vsftp用: www.111cn.net1.service vsftpd restart ...
- iOS-NSOperation多线程
NSOperation 一.简介 1.使用步骤 配合使用NSOperation和NSOperationQueue也能实现多线程编程 先将操作封装到一个NSOperation对象中 然后将NSOpera ...
- RSA 加解密
#region RSA public static byte[] GetBytes(String num) { BigInteger n = ); String s = n.ToString(); & ...
- js模版引擎Mustache介绍
Mustache通常被称为JavaScript模板的基础.另一个流行的解决方案Hanldebars实际上就是基于Mustache构建而成的.这并不意味着Mustache是一个不好的模板解决方案. 下面 ...
- SCP服务实现Linux交互
SCP服务实现Linux交互 在实际工作中,我们可以使用scp服务器进行Linux与Linux之间的信息交互. 基本指令: scp 本地文件 远程文件 scp ...
- ie8中使用placeholder
placeholder 是 html5 中的新属性,考虑到还有不少 ie8 的用户,所以找了一个 ie8 的 placeholder 的补丁,如下: <script type="tex ...
- Rhythmbox中文乱码解决办法
今天在网络上找到了一个比较好的解决Rhythmbox中文乱码的问题的方法 进入你的音乐文件夹执行如下代码: mid3iconv -e GBK *.mp3 如果没有提示多试几次,有可能系统会提示: py ...
- smarty安装及例子
环境: smarty3.1.16 1.在http://www.smarty.net/download下载最新smarty包,window选择zips,linux下选择tar.gz.以windows为例 ...