nh958fixture.cs

来自「NHibernate NET开发者所需的」· CS 代码 · 共 80 行

CS
80
字号
using System;
using NHibernate;

using NUnit.Framework;

namespace NHibernate.Test.NHSpecificTest.NH958
{
	[TestFixture]
    public class NH958Fixture : BugTestCase
    {
		[Test]
		public void SaveOrUpdateCopyWithAny1()
		{
			Person person;

			using (ISession session = OpenSession())
			using (ITransaction transaction = session.BeginTransaction())
			{
				person = new Male("Test");

				for (int i = 0; i < 10; i++)
				{
					person.AddHobby(new Hobby("Hobby_" + i.ToString()));
				}

				session.SaveOrUpdate(person);
				transaction.Commit();
			}

			person.Hobbies.Clear();

			using (ISession session = OpenSession())
			using (ITransaction transaction = session.BeginTransaction())
			{
				person = (Person) session.SaveOrUpdateCopy(person);
				transaction.Commit();
			}

			using (ISession session = OpenSession())
			using (ITransaction transaction = session.BeginTransaction())
			{
				session.Delete(person);
				transaction.Commit();
			}
		}

		[Test]
		public void SaveOrUpdateCopyWithAny2()
		{
			Person person;

			using (ISession session = OpenSession())
			using (ITransaction transaction = session.BeginTransaction())
			{
				person = new Male("Test");
				session.Save(person);
				transaction.Commit();
			}

			person.AddHobby(new Hobby("Hobby_1"));
			person.AddHobby(new Hobby("Hobby_2"));

			using (ISession session = OpenSession())
            using (ITransaction transaction = session.BeginTransaction())
            {
                // the transient hobby "test" is inserted and updated
                person = (Person)session.SaveOrUpdateCopy(person);
                transaction.Commit();
            }

			using (ISession session = OpenSession())
			using (ITransaction transaction = session.BeginTransaction())
			{
				session.Delete(person);
				transaction.Commit();
			}
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?