Nhibernate 在ActiveRecordMediator中,应该使用Execute还是CreateSession?
假设我要做的事情需要访问NHibernate的Nhibernate 在ActiveRecordMediator中,应该使用Execute还是CreateSession?,nhibernate,castle-activerecord,isession,Nhibernate,Castle Activerecord,Isession,假设我要做的事情需要访问NHibernate的会话。例如,通过ISQLQuery运行Sql查询,或通过session.LINQ()运行LINQ到NHibernate。我知道有两种方法可以访问ISession: ActiveRecordMediator.GetSessionFactoryHolder().CreateSession() ActiveRecordMediator.Execute() 每种方法的优缺点是什么?此外,还有其他替代方法吗?我想不出任何技术上的原因来选择一种方法而不是另一种,
会话
。例如,通过ISQLQuery
运行Sql查询,或通过session.LINQ()
运行LINQ到NHibernate。我知道有两种方法可以访问ISession:
ActiveRecordMediator.GetSessionFactoryHolder().CreateSession()
ActiveRecordMediator.Execute()
顺便说一句,执行LINQ查询不需要这些,您可以使用Castle.ActiveRecord.LINQ。似乎
ActiveRecord.Execute
会自动处理会话,但另一种方式不会。这可能是在文档中首选ActiveRecord.Execute
而不是其他方式的原因。顺便说一句,关于Castle.ActiveRecord.Linq
?@afsharm:当然,自己获取会话意味着使用块将其包装在中。Re LINQ:看到了吗