C# 客户端服务器软件的nhibernate ISessionFactory

C# 客户端服务器软件的nhibernate ISessionFactory,c#,postgresql,nhibernate,C#,Postgresql,Nhibernate,我是nhibernate的新手,正在构建一个客户机-服务器应用程序。我听说创建一个nhinernate ISessionFactory最好只创建一次。但是它也会影响数据库吗?或者只是运行软件的工作站?我这样问是因为如果它是三层应用程序,那么我将只有一个nhinernate,但是,由于我的应用程序是客户机服务器,软件将在每个工作站上运行。因此,每个工作站将创建一个nhinernate ISessionFactory。否。它不会影响数据库。事实上,保留ISessionFactory的单个实例有很多原

我是nhibernate的新手,正在构建一个客户机-服务器应用程序。我听说创建一个nhinernate ISessionFactory最好只创建一次。但是它也会影响数据库吗?或者只是运行软件的工作站?我这样问是因为如果它是三层应用程序,那么我将只有一个nhinernate,但是,由于我的应用程序是客户机服务器,软件将在每个工作站上运行。因此,每个工作站将创建一个nhinernate ISessionFactory。

否。它不会影响数据库。事实上,保留ISessionFactory的单个实例有很多原因。其中一个主要原因是帮助nhibernate了解有关它应该如何访问数据库的所有信息,我的意思是,它应该如何生成对整个映射配置的查询

SessionFactory的内部状态是不可变的。一旦是 此内部状态已设置。这种内部状态包括所有 关于对象/关系映射的元数据

ISessionFactory不会连接数据库,它将通过OpenSession方法提供会话实例,会话将为您连接

根据您使用NHibernate映射的模型,启动ISessionFactory可能需要一点时间。这家工厂有几家工厂。如果实现了它,请记住在更改映射时删除序列化文件