使用 Access 数据库的组件在官方下载的 NHibernate-contrib 文件里,有个 NHibernate.JetDriver.dll,这个文件也是必须的。其实,在app.config文件里加入NHibernate属性的语句是:
<?
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.connection.provider"
value
="NHibernate.Connection.DriverConnectionProvider"
/>
<
add
key
="hibernate.dialect"
value
="NHibernate.JetDriver.JetDialect, NHibernate.JetDriver"
/>
<
add
key
="hibernate.connection.driver_class"
value
="NHibernate.JetDriver.JetDriver, NHibernate.JetDriver"
/>
<
add
key
="hibernate.connection.connection_string"
value
="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=hibtest.mdb"
/>
</
nhibernate
>
</
configuration
>
那个 dialect 和 driver_class 的值里面前面是类名称,后面是命名空间名称,中间用逗号分开,不可缺少。
默认配置的注意事项:
1. Access 数据表中类型为日期时间的字段,在类中所对应的类型不能为 DateTime,而要改为 string。原因是插入时没有加引号。
2. 对于名为 User、Username 和 Password 的字段,将会引起插入错误,原因是与字段名与关键字冲突,解决方法是用中括号把字段名括起来。
3. 作为外部调用 DLL,执行时效率会比较差。解决方法是把 JetDriver 也编译进主模块。
浙公网安备 33010602011771号