.Net Framework Data Provider 错误 Fluent Nhibernate for Informix DataBase
.Net Framework Data Provider error Fluent Nhibernate for Informix DataBase
我尝试使用 AutoFac 和 Informix 数据库配置 Fluent Nhibernate,但出现错误:
Unable to find the requested .Net Framework Data Provider. It may not be installed.
工厂休眠
ISessionFactory factory = Fluently.Configure()
.Database(
IfxSQLIConfiguration
.Informix1000
.Provider<NHibernate.Connection.DriverConnectionProvider>()
.Driver<NHibernate.Driver.IfxDriver>()
.Dialect<NHibernate.Dialect.InformixDialect>()
.ConnectionString(c => c.FromConnectionStringWithKey(databaseKey))
.ShowSql())
.Mappings(x => x.FluentMappings.AddFromAssemblyOf<TvLoginMapping>()
.Conventions.AddFromAssemblyOf<CustomTypeConvention>()
)
.BuildSessionFactory();
factories.Add(databaseKey, factory);
WebConfig 文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<clear />
<add name="INFORMIX" connectionString=" Provider=Ifxoledbc.2;Password=*******;Persist Security Info=True;User ID=******;Data Source=******;Database=*****;" />
</connectionStrings>
您可能想在添加条目之前执行 <clear/>
。
您可以检查 machine.config 以查看是否还有其他 Informix。
我不认为方言 "universal" 适用于您图书馆的所有版本。
注意class的评论:
/// Summary description for InformixDialect.
/// This dialect is intended to work with IDS version 7.31
/// However I can test only version 10.00 as I have only this version at work
/// </summary>
/// <remarks>
/// The InformixDialect defaults the following configuration properties:
/// <list type="table">
/// <listheader>
/// <term>ConnectionDriver</term>
/// <description>NHibernate.Driver.OdbcDriver</description>
/// <term>PrepareSql</term>
/// <description>true</description>
/// </listheader>
/// <item>
/// <term>connection.driver_class</term>
/// <description><see cref="NHibernate.Driver.OdbcDriver" /></description>
/// </i
我没有"Informix"版本的眼睛。所以我猜这只是一个提示。
还要注意有这些方言:
我使用了错误的配置来使用 Informix 和 OleDbDriver
ISessionFactory factory = Fluently.Configure()
.Database(
IfxSQLIConfiguration
.Informix1000
.ConnectionString("conectionString")
.Driver<OleDbDriver>()
.Dialect<InformixDialect1000>()
//.ConnectionString(c => c.FromConnectionStringWithKey(databaseKey))
.ShowSql())
.Mappings(x => x.FluentMappings.AddFromAssemblyOf<TvLoginMapping>()
.Conventions.AddFromAssemblyOf<CustomTypeConvention>()
)
.BuildSessionFactory();
factories.Add(databaseKey, factory);
}
LINQ 是 NHibernate 的替代品之一;
Informix 支持它。
不幸的是,Informix 本机 .net 驱动程序不支持 LINQ。
您可能必须使用 DB2 Entity Framework 驱动程序来连接 IDS 服务器。
对于连接 IDS 服务器的 DB2 Entity Framework 驱动程序,您必须启用 IDS 服务器的 DRDA 协议。
我尝试使用 AutoFac 和 Informix 数据库配置 Fluent Nhibernate,但出现错误:
Unable to find the requested .Net Framework Data Provider. It may not be installed.
工厂休眠
ISessionFactory factory = Fluently.Configure()
.Database(
IfxSQLIConfiguration
.Informix1000
.Provider<NHibernate.Connection.DriverConnectionProvider>()
.Driver<NHibernate.Driver.IfxDriver>()
.Dialect<NHibernate.Dialect.InformixDialect>()
.ConnectionString(c => c.FromConnectionStringWithKey(databaseKey))
.ShowSql())
.Mappings(x => x.FluentMappings.AddFromAssemblyOf<TvLoginMapping>()
.Conventions.AddFromAssemblyOf<CustomTypeConvention>()
)
.BuildSessionFactory();
factories.Add(databaseKey, factory);
WebConfig 文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<clear />
<add name="INFORMIX" connectionString=" Provider=Ifxoledbc.2;Password=*******;Persist Security Info=True;User ID=******;Data Source=******;Database=*****;" />
</connectionStrings>
您可能想在添加条目之前执行 <clear/>
。
您可以检查 machine.config 以查看是否还有其他 Informix。
我不认为方言 "universal" 适用于您图书馆的所有版本。
注意class的评论:
/// Summary description for InformixDialect.
/// This dialect is intended to work with IDS version 7.31
/// However I can test only version 10.00 as I have only this version at work
/// </summary>
/// <remarks>
/// The InformixDialect defaults the following configuration properties:
/// <list type="table">
/// <listheader>
/// <term>ConnectionDriver</term>
/// <description>NHibernate.Driver.OdbcDriver</description>
/// <term>PrepareSql</term>
/// <description>true</description>
/// </listheader>
/// <item>
/// <term>connection.driver_class</term>
/// <description><see cref="NHibernate.Driver.OdbcDriver" /></description>
/// </i
我没有"Informix"版本的眼睛。所以我猜这只是一个提示。
还要注意有这些方言:
我使用了错误的配置来使用 Informix 和 OleDbDriver
ISessionFactory factory = Fluently.Configure()
.Database(
IfxSQLIConfiguration
.Informix1000
.ConnectionString("conectionString")
.Driver<OleDbDriver>()
.Dialect<InformixDialect1000>()
//.ConnectionString(c => c.FromConnectionStringWithKey(databaseKey))
.ShowSql())
.Mappings(x => x.FluentMappings.AddFromAssemblyOf<TvLoginMapping>()
.Conventions.AddFromAssemblyOf<CustomTypeConvention>()
)
.BuildSessionFactory();
factories.Add(databaseKey, factory);
}
LINQ 是 NHibernate 的替代品之一; Informix 支持它。 不幸的是,Informix 本机 .net 驱动程序不支持 LINQ。 您可能必须使用 DB2 Entity Framework 驱动程序来连接 IDS 服务器。 对于连接 IDS 服务器的 DB2 Entity Framework 驱动程序,您必须启用 IDS 服务器的 DRDA 协议。