NHibernate ISession всегда пуст в .NET Core - PullRequest
0 голосов
/ 08 мая 2018

У меня есть проект, работающий с EntityFramework Core и MySql, и сейчас я пытаюсь заставить его работать с NHibernate.Я внедряю NHibernate SessionFactory как синглтон и ISession как область, все это обрабатывается инъекцией зависимостей .NET Core, например:

    services.AddSingleton<ISessionFactory>(factory =>
    {
        return Fluently
                    .Configure()
                    .Database(() =>
                    {

                        return FluentNHibernate.Cfg.Db.MySQLConfiguration.Standard
                                .ShowSql()
                                .ConnectionString("DataAccessMySqlProvide");
                    })
                    .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Model>())
                    .BuildConfiguration()
                    .BuildSessionFactory();
    }); 

    services.AddScoped<ISession>(factory =>
       factory
            .GetService<NHibernate.ISessionFactory>()
            .OpenSession()
    );

И в моем классе репозитория у меня есть это:

public sealed class Repository<T> : IRepository<T> where T : class {
    private readonly ISession session;

    public Repository(ISession session) {
        this.session = session ?? throw new ArgumentNullException(nameof(session));
    }

 ...
}

Но сессионный объект всегда равен нулю в конструкторе, есть какая-то подсказка о том, что происходит или чего мне не хватает?

...