我们正在使用NHibernate连接到win32中的Access数据库,NHibernate版本是2.1.0.4,因为很长时间以及它正常工作我们在项目中使用它作为参考:
我现在需要以x64位重建项目,我没有改变DLLS我保持不变,当我运行我的项目时我有错误:
创建SessionFactory时使用了无效或不完整的配置....
代码是:
FluentConfiguration config = Fluently.Configure();
// Configuration to use with Access
config.Database(
FluentNHibernate.Cfg.Db.JetDriverConfiguration
.Standard
.Provider("NHibernate.Connection.DriverConnectionProvider")
.Dialect("NHibernate.JetDriver.JetDialect, NHibernate.JetDriver")
.Driver("NHibernate.JetDriver.JetDriver, NHibernate.JetDriver")
.ProxyFactoryFactory("NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle")
.ConnectionString(c => c.DatabaseFile(_dbName.FullName))
.ShowSql()
);
我尝试在x64中重建以下项目: - NHibernate - 城堡核心 - FluentNHibernate - NHibernate.ByteCode.Castle
但我没有找到重建x64的项目: - Castle.DynamicProxy2 - NHibernate.JetDriver
我将代码修改为:
FluentConfiguration config = Fluently.Configure();
// Configuration to use with Access
config.Database(FluentNHibernate.Cfg.Db.JetDriverConfiguration
.Standard
.Provider("NHibernate.Connection.DriverConnectionProvider")
.Dialect("NHibernate.JetDriver.JetDialect, NHibernate.JetDriver")
.Driver("NHibernate.JetDriver.JetDriver, NHibernate.JetDriver")
.ConnectionString(c => c.DatabaseFile(_dbName.FullName))
.ShowSql()
);
config.ProxyFactoryFactory("NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle")
请帮忙解决这个问题吗?
更新:
我用64位重建DLL:
我将配置代码更改为:
return Fluently.Configure()
.Database(
JetDriverConfiguration.Standard.ConnectionString(
c => c.DatabaseFile(_dbName.FullName))
)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<AccessMapping>().Conventions.Add(DefaultLazy.Never()));
我现在收到了错误消息:
“Microsoft.Jet.OLEDB.4.0”提供程序未在本地计算机上注册
我安装了
Microsoft Access Database Engine 2010 Redistributable
如Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine
所述但仍然有同样的错误
我的电脑配置: