没有可用的当前对话。创建一个会话并将其绑定到容器
问题描述:
当一个方法是直接使用下面的代码,我得到这个错误:没有可用的当前对话。创建一个会话并将其绑定到容器
var fooRepository = ServiceLocator.Current.GetInstance<FooRepository>();
var fooObj = fooRepository.GetFooObj(someText); //get Error
而且堆栈跟踪包含:
在uNhAddIns.SessionEasier.Conversations.ThreadLocalConversationalSessionContext .CurrentSession() 在NHibernate.Impl.SessionFactoryImpl.GetCurrentSession()
错误消息:
没有当前对话可用。创建会话并将其绑定到容器上
一般如何Create a conversation and bind it to the container
?
答
我不知道为什么,但发现,如果我喜欢这个
[PersistenceConversational(MethodsIncludeMode = MethodsIncludeMode.Implicit)]
public class FooModel : IFooModel
模型声明库和声明的方法,它使用存储库mehod和返回数据:
class FooModel
{
public FooObj ModelGetFooObj(string text)
{
return fooRepository.GetFooObj(text);
}
}
然后新建一个FooModel
并使用fooModel.ModelGetFooObj(text)
来获取数据,工作正常。