Search code examples
c#fluent-nhibernateautofacinformix

.Net Framework Data Provider error Fluent Nhibernate for Informix DataBase


I try to configure Fluent Nhibernate with AutoFac and Informix DataBase, but an error is showwing for me:

Unable to find the requested .Net Framework Data Provider. It may not be installed.

Factory Nhibernate

    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 File:

    <?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>
  


Solution

  • I was used a wrong confinguration to use Informix and 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);
                    }