博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NHibernate.3.0.Cookbook第二章第4节的翻译
阅读量:5242 次
发布时间:2019-06-14

本文共 1563 字,大约阅读时间需要 5 分钟。

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

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
()) .DataBaseIntegration(db => { db.Dialect
(); 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

你可能感兴趣的文章
手机验证码执行流程
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
jquery的contains方法
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
桥接模式-Bridge(Java实现)
查看>>
303. Range Sum Query - Immutable
查看>>
【★】浅谈计算机与随机数
查看>>
新的开始
查看>>
Leetcode 226: Invert Binary Tree
查看>>
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
前台freemark获取后台的值
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
Django 相关
查看>>
git init
查看>>
训练记录
查看>>