NHibernate.SessionException:会话未打开

时间:2017-02-28 08:46:38

标签: c# asp.net nhibernate

我对以下问题感到震惊。我正在使用moq来进行MOCK isession ..

以下是我写的代码

static ContainerBuilder BaseSetupForMoq(EmptyInterceptor testInterceptor = null ) {

var containerBuilder = new ContainerBuilder();

{

var testrep= new MockHiber();

    containerBuilder.Register(c => testrep.SessionOpen())
        .As<ISession>()
        .InstancePerRequest();
}

public class MockHiber
{
public ISession SessionOpen()
{

        Mock<API.Mock.ISessionLinq> sessionLinq = new Mock<API.Mock.ISessionLinq>();
        sessionLinq.Setup(x => x.Query<User>()).Returns(User);
        return sessionLinq.Object;
}
}

以下是我用来克服Query扩展方法的包装器。

public interface ISessionLinq :ISession
{
    IQueryable<T> Query<T>();
}
public  class NHibernateLinqExtension
{
    private readonly ISession _session;

    public NHibernateLinqExtension(ISession session)
    {
        _session = session;
    }

    public IQueryable<T> Query<T>()
    {
        return _session.Query<T>();
    }

}

运行上面的代码我遇到错误NHibernate.SessionException:Session没有打开!

0 个答案:

没有答案