科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道NHibernate的灵活配置

NHibernate的灵活配置

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

对于嵌入的资源,我们可以启动“Visual Studio 2005 命令提示”,输入ildasm命令,使用启动的工具打开程序集文件,然后在MANIFEST中找到资源文件的信息.

作者:ghost 来源:CSDN 2007年9月27日

关键字:

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

我写了个类来测试
using System.Reflection;
using NHibernate.Cfg;
using NUnit.Framework;

namespace DDLLY.MyDoc.NHibernateTest.ConfigurationTest.Test
{
    
/// <summary>
    
/// 测试ConfigurationTest.Configure()方法的测试类
    
/// </summary>

    [TestFixture]
    
public class ConfigureFixture
    
{
        
测试方法
    }

}

 让我们来看看配置文件,配置文件中主要配置的是各种属性和映射类的信息(还有缓存配置方面的信息,将在后面的章节讲到)。

在NHibernate.Cfg.Environment类中可以看到的可用属性信息。
例如Environment中public const string ConnectionString = "hibernate.connection.connection_string";

关于属性的说明可以查看NHibernate的文档。

映射文件的配置有以下几种方法

a.使用程序集中的所有资源文件

<!--程序将加载DDLLY.MyDoc.NHibernateTest.Configuration命名空间所有的映射文件(*.hbm.xml)-->
<mapping assembly="DDLLY.MyDoc.NHibernateTest.ConfigurationTest" />

b.使用指定文件

<!-- 映射文件 -->
<!--程序将加载指定的文件-->
<!--这种写法将加载和可执行程序的路径中的User.hbm.xml文件-->
<!--在Visual Studio把生成的可执行文件放在bin\Debug和bin\Release中-->
<!--所以此文件也要放在这两个目录中-->
<mapping file="User.hbm.xml" />

c.使用程序集中的指定资源文件

<!-- 映射文件 -->
<!--程序将加载指定的文件-->
<!--这种写法将加载加载资源文件-->
<mapping resource="DDLLY.MyDoc.NHibernateTest.ConfigurationTest.User.hbm.xml" assembly="DDLLY.MyDoc.NHibernateTest.ConfigurationTest" />

 

我们也可以使用代码来配置这些内容。

AddAssembly

添加程序集中所有以"hbm.xml"为结尾的文件作为映射文件。

示例:cfg.AddAssembly(Assembly.GetExecutingAssembly());

AddClass

使用协定从应用程序资源读取一个映射。类 Foo.Bar.Foo被映射为名为Foo.Bar.Foo.hbm.xml的嵌入在类所在的程序集中的资源文件。

示例:cfg.AddClass(typeof (User));

AddFile

从一个特别的XML文件读取映射。这个方法和AddXmlFile作用一样。

示例:cfg.AddFile("User.hbm.xml");

AddProperties

添加一个IDictionary类型的属性集合。Key是属性名,Value是属性的值。

示例:

//添加连接字符串属性
Hashtable properties = new Hashtable();
properties.Add(Environment.ConnectionString, //NHibernate.Cfg.Environment类中有所有的可属性信息
"server=.;database=user;uid=sa;pwd=App1234;");
cfg.AddProperties(properties);

我比较喜欢使用配置文件里面配置程序集的做法,因为这种做法最简单直接。

我们也可以把两种方式结合起来使用,例如我们可以在配置文件中配置好除连接字符串外的其它信息,然后在代码中添加连接字符串。

不管是映射信息还是属性信息最终都回被设置到Configuration里,我们可以查看Configuration的ClassMappings和Properties来查看这些信息。

同样我也写了两个类,前一个用来测试配置映射类。后一个用来测试配置属性。

测试配置映射

using System.Reflection;
using NHibernate.Cfg;
using NUnit.Framework;

namespace DDLLY.MyDoc.NHibernateTest.ConfigurationTest.Test
{
    
/// <summary>
    
/// 测试加载映射文件的类
    
/// </summary>

    [TestFixture]
    
public class ConfigMappingFixture
    
{
        
SetUp和TearDown

        
使用配置文件配置映射的测试

        
使用程序代码配置映射的测试
    }

}

 

测试配置属性

using System.Collections;
using System.Reflection;
using NHibernate.Cfg;
using NUnit.Framework;

namespace DDLLY.MyDoc.NHibernateTest.ConfigurationTest.Test
{
    
/// <summary>
    
/// 测试配置属性的类
    
/// </summary>

    [TestFixture]
    
public class ConfigPropertyFixture
    
{
        
SetUp和TearDown

        
测试方法
    }

}
注:本文中使用的是NH1.0.2.0版本,其他版本配置可能略有不同。

示例代码下载

数据库脚本下载


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1801514

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章