protected void CopyTo(ORMGOLoginHistory x, NHibernate.ISession session)
 {
     x.Id        = Id;
     x.Info      = Info?.Truncate(100);
     x.User      = User?.Truncate(100);
     x.Timestamp = Timestamp;
     x.Result    = Result;
 }
        private void Evict(ORMGOLoginHistory result, NHibernate.ISession session)
        {
            foreach (var entity in session.GetSessionImplementation().PersistenceContext.EntitiesByKey.Values.ToArray())
            {
                var evictee = entity as ORMGOLoginHistory;

                if (evictee != null && evictee.Id == result.Id)
                {
                    session.Evict(evictee);
                }
            }
        }
        public override IORMEntity ToORMEntity()
        {
            var session = NHibernateSessionController.GetCurrentSession();

            var result = new ORMGOLoginHistory();

            CopyTo(result, session);

            // Ensure no copy of result (instance with same key) in session
            Evict(result, session);

            return(result);
        }