请问Nhibernate是否支持Access数据库事务处理?要支持如何配置或方法?
我用SQL SERVER是没有问题,现在系统要做个单机版本,选择了ACCESS数据库,事务支持不起来了,,啥办?

解决方案 »

  1.   

    使用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的值里面前面是类名称,后面是命名空间名称,中间用逗号分开,不可缺少。以前查到的一些资料里都没有这一步,所以一直失败。最后还有一个问题,用户表里面的LastLogon是个日期时间字段,类里面字段的属性也设成日期时间,插入的时候报错,把类里面的字段改成string就可以了,可能是因为插入的时候没有加引号的问题。还有密码字段如果字段名为Password,同样插入出错,这个应该是字段名跟关键字冲突的问题,看来作者没有考虑到把字段名括起来的问题。但是我一直没有办法显示出最终要执行的sql语句,所以也一直没有办法确定错误原因。不过有了以上内容,应该足够写完整个程序了。
      

  2.   

    Access数据库 都用NHibernate ...你们的架构师 .......
      

  3.   

    用这个 实体代码生成工具
    http://blog.csdn.net/chutao/archive/2011/03/07/6228295.aspx