您的位置:首页 > 其它

step by step castle ActiveRecord示例项目详读之配置信息和初始化

2008-11-16 00:59 597 查看
在学习castle过程中发现安装了1.0 Release Candidate 3版本的castle,系统自带了一个ActiveRecord-Samples例子,决定好好研究下:

从 App.cs 开始

MS SQLServer
<activerecord>

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

</activerecord>
Oracle
<activerecord>

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

</activerecord>
MySQL
<activerecord>

<config>
<add key="hibernate.connection.driver_class" value="NHibernate.Driver.MySqlDataDriver" />
<add key="hibernate.dialect"                 value="NHibernate.Dialect.MySQLDialect" />
<add key="hibernate.connection.provider"     value="NHibernate.Connection.DriverConnectionProvider" />
<add key="hibernate.connection.connection_string" value="Database=test;Data Source=someip;User Id=blah;Password=blah" />
</config>

</activerecord>
Firebird
<activerecord>

<config>
<add key="hibernate.connection.driver_class" value="NHibernate.Driver.FirebirdDriver" />
<add key="hibernate.dialect"                 value="NHibernate.Dialect.FirebirdDialect" />
<add key="hibernate.connection.provider"     value="NHibernate.Connection.DriverConnectionProvider" />
<add key="hibernate.connection.connection_string" value="Server=localhost;Database=d:\db.fdb;User=SYSDBA;password=masterkey;ServerType=1;Pooling=false" />
<add key="hibernate.query.substitutions"     value="true 1, false 0" />
</config>

</activerecord>
PostgreSQL
<activerecord>

<config>
<add key="hibernate.connection.driver_class" value="NHibernate.Driver.NpgsqlDriver" />
<add key="hibernate.dialect"                 value="NHibernate.Dialect.PostgreSQLDialect" />
<add key="hibernate.connection.provider"     value="NHibernate.Connection.DriverConnectionProvider" />
<add key="hibernate.connection.connection_string" value="Server=localhost;initial catalog=nhibernate;User ID=nhibernate;Password=nhibernate;" />
</config>

</activerecord>
Access (Jet)
Connectivity to an Microsoft Access database via Jet requires a reference to NHibernate.JetDriver.

<activerecord>

<config>
<add key="hibernate.connection.driver_class" value="NHibernate.JetDriver.JetDriver, NHibernate.JetDriver" />
<add key="hibernate.dialect"                 value="NHibernate.JetDriver.JetDialect, NHibernate.JetDriver" />
<add key="hibernate.connection.provider"     value="NHibernate.Connection.DriverConnectionProvider" />
<add key="hibernate.connection.connection_string" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=nhibernate.mdb" />
</config>

</activerecord>


关于初始化:

初始化语句:

XmlConfigurationSource source = new XmlConfigurationSource("../appconfig.xml");

ActiveRecordStarter.Initialize( source, typeof(Blog), typeof(Post), typeof(User) );

这时就产生了两个疑问:

1. 在ActiveRecordStarter.Initialize()我有多少个实例我都要typeof()吗?有没有其他办法?

2.这个是Form程序我可以将初始化语句写在main函数的开头,如果是web程序我将初始化写在哪里?

答案:

1.你可以把实体类的程序集都一起初始化了

例子:ActiveRecordStarter.Initialize(Assembly.Load("BlogSample"), source)

(注意:在程序前using System.Reflection; )

2.如果是web程序初始化你可以把它放在Global.asax的Application_ Start方法里面。(注意在前面添加

<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="Castle.ActiveRecord" %>
<%@ Import Namespace="Castle.ActiveRecord.Framework" %>,三个引用)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: