protected void CopyTo(ORMGOUserGroup x, NHibernate.ISession session) { x.User = this.User != null?session.Load <ORMGOUser>(this.User.Id) : (this.GOUserId != null ? session.Load <ORMGOUser>(this.GOUserId) : null); x.GOUserId = this.User != null ? this.User.Id : GOUserId; x.Group = this.Group != null?session.Load <ORMGOGroup>(this.Group.Name) : (this.GOGroupName != null ? session.Load <ORMGOGroup>(this.GOGroupName) : null); x.GOGroupName = this.Group != null ? this.Group.Name : GOGroupName; }
private void Evict(ORMGOUserGroup result, NHibernate.ISession session) { foreach (var entity in session.GetSessionImplementation().PersistenceContext.EntitiesByKey.Values.ToArray()) { var evictee = entity as ORMGOUserGroup; if (evictee != null && evictee.CompositeIdentity.Equals(result.CompositeIdentity)) { session.Evict(evictee); } } }
public override IORMEntity ToORMEntity() { var session = NHibernateSessionController.GetCurrentSession(); var result = new ORMGOUserGroup(); CopyTo(result, session); // Ensure no copy of result (instance with same key) in session Evict(result, session); return(result); }