public void DeleteAndMerge() { using (ISession s = OpenSession()) { s.BeginTransaction(); var jboss = new Employer(); s.Persist(jboss); s.Transaction.Commit(); s.Clear(); s.BeginTransaction(); var otherJboss = s.Get<Employer>(jboss.Id); s.Delete(otherJboss); s.Transaction.Commit(); s.Clear(); jboss.Vers = 1; s.BeginTransaction(); s.Merge(jboss); s.Transaction.Commit(); } }
public void RecursiveMergeTransient() { using (ISession s = OpenSession()) { using (ITransaction tx = s.BeginTransaction()) { var jboss = new Employer(); var gavin = new Employee(); jboss.Employees = new List<Employee> {gavin}; s.Merge(jboss); s.Flush(); jboss = s.CreateQuery("from Employer e join fetch e.Employees").UniqueResult<Employer>(); Assert.That(NHibernateUtil.IsInitialized(jboss.Employees)); Assert.That(jboss.Employees.Count, Is.EqualTo(1)); s.Clear(); IEnumerator<Employee> it = jboss.Employees.GetEnumerator(); it.MoveNext(); s.Merge(it.Current); tx.Commit(); } } }