我是nhibernate
的新手,我正在构建一个客户端 - 服务器应用程序。我听说创建一个nhinernate ISessionFactory
如果我只创建一次就更好了。但它也会对数据库产生影响吗?或只是运行软件的工作站?我问它,因为如果它是3层应用程序,那么我将只有一个nhinernate但是,因为我的应用程序是客户端 - 服务器,软件将在每个工作站上运行。因此,每个工作站将创建一个nhinernate ISessionFactory
。
答案 0 :(得分:0)
没有。它不会影响数据库。实际上,保留ISessionFactory的单个实例有很多理由。其中一个主要原因是帮助nhibernate知道它应该如何访问数据库的所有信息,我的意思是,它应该如何在整个mappings
配置中生成查询。
SessionFactory的内部状态是不可变的。一旦它 创建此内部状态已设置。这个内部状态包括所有 关于对象/关系映射的元数据。
ISessionFactory
不会在数据库上保留,它会提供Session
OpenSession()
方法的实例,而Session
将为您提供支持。
根据您使用NHibernate进行映射的模型,启动ISessionFactory
可能需要一点时间。 ISessionFactory
有一些pratices to improve the performance of the initialization。如果实现它,请记住在更改映射时删除序列化文件。