У меня есть проект, работающий с 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));
}
...
}
Но сессионный объект всегда равен нулю в конструкторе, есть какая-то подсказка о том, что происходит или чего мне не хватает?