Example #1
0
		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();
			}
		}
Example #2
0
		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();
				}
			}
		}