我的ActiveRecord学习之路(二):配置文件

     上一篇文章主要写了AR的一些简单的操作,目的是让大家对AR有一定的了解,今天我主要来说一下AR里的配置文件的使用以及几种常见数据库的配置。
     本文参考与:http://www.castleproject.org/index.php/ActiveRecord:Configuration_Reference

     首先引用Castle官方网站上的一句话:It's necessary to specify some information in order to use ActiveRecord.在配置文件里我们需要指定数据库的连接字符串,数据源驱动等信息。

   一、使用XML进行配置,如下:

None.gif < activerecord >
None.gif      
None.gif    
< config >
None.gif      
< add  key ="hibernate.connection.driver_class"  value ="NHibernate.Driver.SqlClientDriver"   />
None.gif      
< add  key ="hibernate.dialect"                  value ="NHibernate.Dialect.MsSql2000Dialect"   />
None.gif      
< add  key ="hibernate.connection.provider"      value ="NHibernate.Connection.DriverConnectionProvider"   />
None.gif      
< add  key ="hibernate.connection.connection_string"  value ="Data Source=.;Initial Catalog=test;Integrated Security=SSPI"   />
None.gif    
</ config >
None.gif      
None.gif
</ activerecord >
None.gif


    然后在我们的程序中应该这样初始化:

None.gif ActiveRecordStarter.Initialize(  new  XmlConfigurationSource( @" myfile.xml " ),  typeof (Company) );

二、使用应用程序的配置文件进行配置(web程序的Web.Config或应用程序的App.Config)
None.gif < configuration >
None.gif
None.gif    
< configSections >
None.gif        
< section  name ="activerecord"
None.gif                 type
="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord"   />
None.gif    
</ configSections >
None.gif
None.gif    
< activerecord >
None.gif      
None.gif      
< config >
None.gif        
< add  key ="hibernate.connection.driver_class"  value ="NHibernate.Driver.SqlClientDriver"   />
None.gif        
< add  key ="hibernate.dialect"                  value ="NHibernate.Dialect.MsSql2000Dialect"   />
None.gif        
< add  key ="hibernate.connection.provider"      value ="NHibernate.Connection.DriverConnectionProvider"   />
None.gif        
< add  key ="hibernate.connection.connection_string"  value ="Data Source=.;Initial Catalog=test;Integrated Security=SSPI"   />
None.gif      
</ config >
None.gif      
None.gif    
</ activerecord >
None.gif    
None.gif
</ configuration >
None.gif

在程序中的初始化方法如下:
None.gif IConfigurationSource source  =  System.Configuration.ConfigurationSettings.GetConfig( " activerecord " as  IConfigurationSource;  // this for .net 1.1
None.gif

None.gifIConfigurationSource source 
=  System.Configuration.ConfigurationManager.GetSection( " activerecord " as  IConfigurationSource;  // this for .net 2.0
None.gif

None.gifActiveRecordStarter.Initialize( source, 
typeof (Company) );
None.gif
None.gif
// 如果为多个实体初始化,Initialize()方法的第二个参数可以是一个Type[]类型,这个数组里存放需要初始化的实体类
None.gif
Type[] paramTypes  =   new  Type[ 2 ];
None.gifparamTypes[
0 =   typeof (Company);
None.gifparamTypes[
1 =   typeof (People);
None.gifActiveRecordStarter.Initialize( source,paramTypes);
None.gif
None.gif

三、动态配置(InPlace)
   这种方法主要用于动态创建应用程序的配置信息,这个时候就不能用XML了。
None.gif InPlaceConfigurationSource config  =   new  InPlaceConfigurationSource();
None.gifHashtable myproperties 
=   new  Hashtable();
None.gif
// 在myproperties中就可以动态加入一些配置信息了
None.gif
myproperties.add( "" , "" );
None.gifconfig.Add( 
typeof (ActiveRecordBase), myproperties );
None.gifActiveRecordStarter.Initialize( source, 
typeof (Company), typeof (People) );

四、几种常见数据库的配置(摘自Castle官方网站)
1、SQL Server

None.gif < activerecord >
None.gif      
None.gif    
< config >
None.gif      
< add  key ="hibernate.connection.driver_class"  value ="NHibernate.Driver.SqlClientDriver"   />
None.gif      
< add  key ="hibernate.dialect"                  value ="NHibernate.Dialect.MsSql2000Dialect"   />
None.gif      
< add  key ="hibernate.connection.provider"      value ="NHibernate.Connection.DriverConnectionProvider"   />
None.gif      
< add  key ="hibernate.connection.connection_string"  value ="Data Source=.;Initial Catalog=test;Integrated Security=SSPI"   />
None.gif    
</ config >
None.gif      
None.gif
</ activerecord >
None.gif

2、Oracle
None.gif < activerecord >
None.gif      
None.gif    
< config >
None.gif      
< add  key ="hibernate.connection.driver_class"  value ="NHibernate.Driver.OracleClientDriver"   />
None.gif      
< add  key ="hibernate.dialect"                  value ="NHibernate.Dialect.OracleDialect"   />
None.gif      
< add  key ="hibernate.connection.provider"      value ="NHibernate.Connection.DriverConnectionProvider"   />
None.gif      
< add  key ="hibernate.connection.connection_string"  value ="Data Source=dm;User ID=dm;Password=dm;"   />
None.gif    
</ config >
None.gif      
None.gif
</ activerecord >
None.gif

3、MySql
None.gif < activerecord >
None.gif      
None.gif    
< config >
None.gif      
< add  key ="hibernate.connection.driver_class"  value ="NHibernate.Driver.MySqlDataDriver"   />
None.gif      
< add  key ="hibernate.dialect"                  value ="NHibernate.Dialect.MySQLDialect"   />
None.gif      
< add  key ="hibernate.connection.provider"      value ="NHibernate.Connection.DriverConnectionProvider"   />
None.gif      
< add  key ="hibernate.connection.connection_string"  value ="Database=test;Data Source=someip;User Id=blah;Password=blah"   />
None.gif    
</ config >
None.gif      
None.gif
</ activerecord >
None.gif
关于AR的配置就讲这么多了,希望对初学者有一定的帮助。
还有需要注意的一点,我们在写程序的时候对AR框架的初始化一般都放在global.asax.cs中的Application_start()方法里,如下:
None.gif public   class  GlobalApplication : HttpApplication
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif  
public void Application_Start()
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif{
InBlock.gif    IConfigurationSource source 
= 
InBlock.gif      System.Configuration.ConfigurationSettings.GetConfig(
"activerecord"as IConfigurationSource;
InBlock.gif
InBlock.gif    ActiveRecordStarter.Initialize( source, 
typeof(Company), typeof(People) );
ExpandedSubBlockEnd.gif  }

ExpandedBlockEnd.gif}

None.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值