J'utilise NHibernate dans une application Windows Forms et j'ai besoin de changer la chaîne de connexion dans une classe de référentiel. Mais lorsque je tente d'obtenir la session en cours, je reçois cette erreur:Configuration de la session Nhibernate pour l'application Windows
No CurrentSessionContext configured
Ma classe Repository est comme ci-dessous:
public class UserRepository : Repository<User>, IUserRepository
{
public UserRepository(ISessionFactory planningUow) : base(planningUow)
{
planningUow.GetCurrentSession().Connection.ConnectionString = "test";
}
public IQueryable<User> GetByUserId(Guid id)
{
return Session.Query<User>().Where(bd => bd.UserId == id).AsQueryable();
}
public IQueryable<User> GetAllUsers()
{
return Session.Query<User>().AsQueryable();
}
public IQueryable<User> GetByUserPassword(string userName, string password)
{
return Session.Query<User>().Where(x => x.UserName == userName && x.Password == password).AsQueryable();
}
}
et mon code de configuration Fluent NHibernate est comme ci-dessous:
public ISessionFactory CreateSessionFactory()
{
try
{
return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(x => x.FromConnectionStringWithKey(ConnectionString)))
.Mappings(m =>
m.FluentMappings
.AddFromAssemblyOf<UserMap>())
.ExposeConfiguration(config => { new SchemaUpdate(config).Execute(false, true); })
.BuildSessionFactory();
}
catch (Exception ex)
{
throw ex;
}
}
comment puis-je obtenir la session en cours pour obtenir la chaîne de connexion?