我是WCF和NHibernate的初学者。 但是,我必须做一个涉及多个服务(使用WCF制作)和持久层(使用NHibernate制作)的小项目。
我的问题涉及ISession和ISessionFactory的使用。 我已阅读(并看到)ISessionFactory的实例化非常繁重(并且是线程安全的)。所以,我认为我可以在应用程序运行时期间只对该类进行一次实例化。我没错?
我的问题更多地涉及ISession类。我不确切知道我必须使用它的粒度。我认为我应该为每次调用服务操作使用/创建一个实例(我使用“per-call services”)。再一次,我是对的?
答案 0 :(得分:5)
你是真的。会话工厂的构造成本很高,非常适合作为单例,而会话是一个包含“工作单元”的更轻量级的上下文对象。
要了解更多信息,您可以阅读有关提出此问题解决方案的城堡WCF设施。这是探索它的blog post。