Nhibernate 如何流畅地停止。配置自动连接
我如何才能流利地使用。自动配置与数据库的连接 下面详细介绍了我们的设置 我们使用以下静态方法创建会话工厂:Nhibernate 如何流畅地停止。配置自动连接,nhibernate,fluent-nhibernate,inversion-of-control,unity-container,informix,Nhibernate,Fluent Nhibernate,Inversion Of Control,Unity Container,Informix,我如何才能流利地使用。自动配置与数据库的连接 下面详细介绍了我们的设置 我们使用以下静态方法创建会话工厂: public static ISessionFactory CreateSessionFactory() { return Fluently.Configure() .Database( IfxOdbcConfiguration .Informix
public static ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database(
IfxOdbcConfiguration
.Informix
.ConnectionString("DSN=ODBCCONNECTION")
.Driver<CompanyCore.Nhibernate.Core.ProfiledODBCClientDriver>()
.Dialect<InformixDialect1000>()
.ShowSql()
)
.Mappings(
m => m.FluentMappings.AddFromAssemblyOf<Task>()
)
.BuildSessionFactory();
}
公共静态ISessionFactory CreateSessionFactory()
{
流畅地返回。Configure()
.数据库(
IfxOdbcConfiguration
.Informix
.ConnectionString(“DSN=ODBCCONNECTION”)
.司机()
.方言()
.ShowSql()
)
.映射(
m=>m.FluentMappings.AddFromAssemblyOf()
)
.BuildSessionFactory();
}
它与我们的IOC设置一起用于创建SessionFactory,但是,由于我们的DB团队的要求,每个用户都必须作为自己的用户打开自己的连接(使用模拟),以便识别进程,查看谁在Informix服务器上运行什么
要创建我们使用的各个连接,请执行以下操作:
public static ISession GetMySession(ISessionFactory factory, string user)
{
CompanyCore.Nhibernate.Core.ProfiledODBCClientDriver drv = new Enact.Nhibernate.Core.ProfiledODBCClientDriver();
drv.Configure(new Dictionary<string, string>());
string conn = "DSN=ODBCCONNECTION";
IDbConnection db = drv.CreateConnection();
db.ConnectionString = conn;
db.Open();
return factory.OpenSession(db);
}
公共静态ISession GetMySession(ISessionFactory工厂,字符串用户)
{
CompanyCore.Nhibernate.Core.ProfileDodbClientDriver drv=新颁布的.Nhibernate.Core.ProfileDodbClientDriver();
配置(新字典());
字符串conn=“DSN=ODBCCONNECTION”;
IDbConnection db=drv.CreateConnection();
db.ConnectionString=conn;
db.Open();
返回factory.OpenSession(db);
}
当UOW调用dispose时,这些连接将关闭
我们在应用程序启动时调用CreateSessionFactory()
,然后将此工厂与IOC一起传递,但此时没有模拟用户,因此在第一次加载时会导致应用程序错误
我们考虑过使用标准用户,该用户可以访问首次加载之类的内容,但肯定有更好的方法?您需要禁用自动关键字引用: configuration.SetProperty(Environment.Hbm2ddlKeyWords,“无”) 有关更多详细信息,请参阅关于“防止NHibernate在configuration.BuildSessionFactory()上连接到数据库”的帖子:
完美-额外链接的道具也+1