科技行者

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

知识库

知识库 安全导航

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

NHibernate的灵活配置

  • 扫一扫
    分享文章到微信

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

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

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

关键字: NHibernate 配置

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

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

NHibernate的灵活配置

1.Visual Studio中文件的生成操作

在开始讨论这个话题前,我们想来看看Visual Studio中文件的生成操作。

无(None) - 不在项目输出组中包含该文件,并且在生成进程中不会对其进行编译。例如包含文档的文本文件,如自述文件。

编译(Compile) - 将该文件编译到生成输出中。此设置用于代码文件。

内容(Content) - 不编译该文件,但将其包含在“内容”(Content) 输出组中。例如,此设置是 .htm 或其他类型 Web 文件的默认值。

嵌入的资源(Embedded Resource) - 将该文件作为 DLL 或可执行文件嵌入主项目生成输出中。此设置通常用于资源文件。

 

对于嵌入的资源,我们可以启动“Visual Studio 2005 命令提示”,输入ildasm命令,使用启动的工具打开程序集文件,然后在MANIFEST中找到资源文件的信息,如下图。可以看见有名为“DDLLY.MyDoc.NHibernateTest.ConfigurationTest.hibernate1.cfg.xml”的资源文件。

 

2.Configuration配置

配置Configuration需要调用Configuration.Configure,我们来看看Configuration.Configure方法的信息

public Configuration Configure();

如果存在应用程序配置文件,则使用应用程序配置文件中的<hibernate-configuration>节点配置NHibernate,否则使用hibernate.cfg.xml进行配置。

public Configuration Configure(Assembly,string);
使用程序集中的资源配置NHibernate。
public Configuration Configure(string)
c.使用指定的文件配置NHibernate。
public Configuration Configure(XmlTextReader)
使用指定的XmlTextReader配置NHibernate。

 

我们可以使用多种方式进行配置,比较常见的配置有以下几种

a.可以在应用程序配置文件(对于普通程序而言为App.config,对Asp.net是Web.config)中进行配置,调用Configure()配置,配置文件如下
 
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
<configSections>
    
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  
</configSections>

  
<nhibernate>
    
<add 
            
key="hibernate.show_sql"
            value
="true"
        
/>
    
<add 
            
key="hibernate.connection.provider"          
            value
="NHibernate.Connection.DriverConnectionProvider" 
        
/>
        
<add 
            
key="hibernate.dialect"                      
            value
="NHibernate.Dialect.MsSql2000Dialect" 
        
/>
        
<add 
            
key="hibernate.connection.driver_class"          
            value
="NHibernate.Driver.SqlClientDriver" 
        
/>
        
<add 
            
key="hibernate.connection.connection_string" 
            value
="server=.;database=user;uid=sa;pwd=App1234;" 
        
/>

  
</nhibernate>

</configuration>


 

这种配置方式只能对属性进行配置,不能配置映射类,而且应用程序配置文件可能还需要配置其他的信息,容易造成文件过于大,不方面浏览。所以我不推荐这种配置方式。

b.单独使用配置文件进行配置
b1.把配置文件放在程序应用程序同级目录,使用Configure()方法,此时配置文件名应为“hibernate.cfg.xml”
b2.把配置文件放到某个指定的路径,调用Configure(string)方法
b3.把配置文件作为资源嵌入到程序集(把文件的生成类型设置为"嵌入的资源"),调用Configure(Assembly,string)方法
这是一个典型配置文件
<?xml version="1.0" encoding="utf-8" ?>
<!--普通配置文件,使用程序集加载映射文件-->
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.0">
    
<session-factory name="DDLLY.MyDoc.NHibernate.QuickStart">
        
<!-- 属性 -->
        
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
        
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
        
<property name="connection.connection_string">server=.;database=user;uid=sa;pwd=App1234;</property>
        
<property name="show_sql">false</property>
        
<property name="dialect">NHibernate.Dialect.MsSql2000Dialect</property>
        
<property name="use_outer_join">true</property>
        
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
        
<!-- 映射文件 -->
        
<!--程序将加载DDLLY.MyDoc.NHibernateTest.Configuration命名空间所有的映射文件(*.hbm.xml)-->
        
<mapping assembly="DDLLY.MyDoc.NHibernateTest.ConfigurationTest" />
    
</session-factory>
</hibernate-configuration>
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

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

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