NHibernate.3.0.Cookbook第二章第4节的翻译

Configuring NHibernate with code

使用代码配置NHibernate

  使用代码同样可以完成NHibernate的配置。本节将介绍如何使用NHibernate.Cfg.Loquacious命名空间来配置NHibernate。

准备工作

1.   完成第一章中Eg.Core项目的模式和映射部分.
2.   在你的解决方案中添加一个名为ConfigByCode的控制台项目.
3.   将她设置为启动项目.
4.   为该项目添加NHibernate.dll 和NHibernate.ByteCode.Castle.dll引用,这两个文件在Lib文件夹中.
5.   为该项目添加到Eg.Core的引用.

步骤

1.   添加一个App.config文件如下:

View Code
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <connectionStrings>
    <add name="db" connectionString="Server=.\SQLExpress;
Database=NHCookbook; Trusted_Connection=SSPI"/>
  </connectionStrings>
</configuration>

2.   打开Program.cs,添加如下using语句:

View Code
using NHibernate.ByteCode.Castle;
using NHibernate.Cfg;
using NHibernate.Cfg.Loquacious;
using NHibernate.Dialect;

3.   在Main函数中添加下面的代码以完成对NHibernate的配置:

View Code
var nhConfig = new Configuration()
  .Proxy(proxy => 
    proxy.ProxyFactoryFactory<ProxyFactoryFactory>())
  .DataBaseIntegration(db =>
  {
    db.Dialect<MsSql2008Dialect>();
    db.ConnectionStringName = "db";
    db.BatchSize = 100;
  })
  .AddAssembly("Eg.Core");
var sessionFactory = nhConfig.BuildSessionFactory();
Console.WriteLine("NHibernate Configured!");
Console.ReadKey();

4.   编译运行,可以看到提示文本NHibernate Configured!.

原理

  在这个示例中,我们使用NHibernate.Cfg.Loquacious命名空间中的扩展方法完成了NHibernate的配置。这些方法也是类型安全的。我们使用Proxy扩展方法来指定proxyfactory.factory_class. 然后,使用了DatabaseIntegration方法指定了dialect,  connection.connection_string_name , 和adonet.batch_size . 最后使用AddAssembly方法添加了映射(嵌入在程序集中).AddAssembly不是扩展方法,在大多NHibernate版本中,她已经成为NHibernate配置API的一部分。

扩展

  注意,我们仍旧使用了在App.config中定义的db连接字符串。如果想完全取消App.config文件,可以使用如下代码:

db.ConnectionString = @"Connection string here...";

  但是,由于上诉代码是硬编码,所以即使配置有了一个小小的改动,我们也需要修改代码并重新编译.

  

转载于:https://www.cnblogs.com/carfieldSE/archive/2012/07/06/2576138.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值