public void Test()
		{
			using (ISession session = OpenSession())
			using (ITransaction tx = session.BeginTransaction())
			{
				Employer emr1 = new Employer("Test Employer 1");
				Employer emr2 = new Employer("Test Employer 2");

				Employee[] employees = new Employee[5];

				for (int i = 0; i < employees.Length; i++)
				{
					employees[i] = new Employee("Test Employee " + (i + 1).ToString());
				}

				emr1.AddEmployee(employees[0]);
				emr1.AddEmployee(employees[1]);
				emr1.AddEmployee(employees[2]);
				emr2.AddEmployee(employees[3]);
				emr2.AddEmployee(employees[4]);

				session.Save(emr1);
				session.Save(emr2);

				foreach (Employee emp in employees)
				{
					session.Save(emp);
				}

				tx.Commit();
			}

			using (ISession session = OpenSession())
			{
				IList employers = session.CreateQuery("select emr from Employer emr inner join fetch emr.Employees")
					.SetResultTransformer(CriteriaSpecification.DistinctRootEntity)
					.List();
				Assert.AreEqual(2, employers.Count);
			}

			using (ISession session = OpenSession())
			using (ITransaction tx = session.BeginTransaction())
			{
				session.Delete("from Employee");
				session.Delete("from Employer");
				tx.Commit();
			}
		}
Beispiel #2
0
		public void AddEmployee(Employee employee)
		{
			employees.Add(employee);
			employee.Employer = this;
		}