⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fixture.cs

📁 NHibernate NET开发者所需的
💻 CS
字号:
using System;
using System.Collections.Generic;
using NHibernate.Criterion;
using NHibernate.SqlCommand;
using NUnit.Framework;

namespace NHibernate.Test.NHSpecificTest.NH1028
{
	[TestFixture]
	public class Fixture : BugTestCase
	{
		public override string BugNumber
		{
            get { return "NH1028"; }
		}

		[Test]
		public void CanLoadCollectionUsingLeftOuterJoin()
		{
			String itemName = "a";
			String shipName = "blah";

			Item item = new Item();
			item.Name = itemName;

			Ship ship = new Ship();
			ship.Name = shipName;
			item.Ships.Add(ship);
			using (ISession s = OpenSession())
			{
				s.Save(ship);
				s.Save(item);
				s.Flush();
			}
			using (ISession s = OpenSession())
			{
				ICriteria criteria = s.CreateCriteria(typeof(Item));
				criteria.CreateCriteria("Ships", "s", JoinType.InnerJoin)
					 .Add(Expression.IsNotNull("s.Id"));
				criteria.CreateCriteria("Containers", "c", JoinType.LeftOuterJoin)
					.Add(Expression.IsNull("c.Id"));

				IList<Item> results = criteria.List<Item>();
				Assert.AreEqual (1, results.Count);

				Item loadedItem = results[0];
				Assert.AreEqual (itemName, loadedItem.Name);

				Assert.AreEqual (1, loadedItem.Ships.Count);
				foreach (Ship loadedShip in item.Ships) {
					Assert.AreEqual (shipName, loadedShip.Name);	
				}

				Assert.IsTrue (loadedItem.Containers.IsEmpty);
			}
			using (ISession s = OpenSession())
			{
				s.Delete(ship);
				s.Delete(item);
				s.Flush();
			}
		}
	}
}

⌨️ 快捷键说明

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