fixture.cs

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

CS
48
字号
using NHibernate.Criterion;
using NUnit.Framework;

namespace NHibernate.Test.NHSpecificTest.NH826
{
	[TestFixture]
	public class Fixture : BugTestCase
	{
		[Test]
		public void Bug()
		{
			ISession session = OpenSession();
			ITransaction transaction = session.BeginTransaction();

			Activity activity = new Activity();
			session.Save(activity);

			ActivitySet activitySet = new ActivitySet();
			activitySet.Activities.Add(activity);
			session.Save(activitySet);

			transaction.Commit();
			session.Close();

			session = OpenSession();
			transaction = session.BeginTransaction();

			// This works:
			//IList<ActivitySet> list = session.CreateQuery("from ActivitySet a where a.Id = 1").List<ActivitySet>();
			//Console.WriteLine("Got it? {0}", list.Count == 1);
			//session.Flush();

			// This does not
			ActivitySet loadedActivitySet = (ActivitySet) session
			                                              	.CreateCriteria(typeof(ActivitySet))
			                                              	.Add(Expression.Eq("Id", activitySet.Id))
			                                              	.UniqueResult();

			session.Flush();

			session.Delete(loadedActivitySet.Activities[0]);
			session.Delete(loadedActivitySet);

			transaction.Commit();
			session.Close();
		}
	}
}

⌨️ 快捷键说明

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