40 lines
1.1 KiB
C#
40 lines
1.1 KiB
C#
using NHibernate;
|
|
using Taloyhtio.GeneralSSO.Server.CodeFiles.Entities;
|
|
using Taloyhtio.GeneralSSO.Server.CodeFiles.Infrastructure.DataAccess;
|
|
|
|
namespace Taloyhtio.GeneralSSO.Server.CodeFiles.Repositories.Impl
|
|
{
|
|
public class AtomicRepositoryBase<TEntity, TKey> : RepositoryBase<TEntity, TKey> where TEntity : PersistentObject<TKey>
|
|
{
|
|
private ISessionSource sessionSource;
|
|
private ISession session;
|
|
|
|
public AtomicRepositoryBase(ISessionSource sessionSource)
|
|
{
|
|
this.sessionSource = sessionSource;
|
|
}
|
|
|
|
protected override ISession GetSession()
|
|
{
|
|
if (this.session == null)
|
|
{
|
|
// create session on 1st request
|
|
this.session = this.sessionSource.CreateSession();
|
|
}
|
|
return this.session;
|
|
}
|
|
|
|
public override void Save(TEntity entity)
|
|
{
|
|
base.Save(entity);
|
|
this.session.Flush();
|
|
}
|
|
|
|
public override void Delete(TEntity entity)
|
|
{
|
|
base.Delete(entity);
|
|
this.session.Flush();
|
|
}
|
|
}
|
|
}
|