fixture.cs
来自「NHibernate NET开发者所需的」· CS 代码 · 共 65 行
CS
65 行
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 + =
减小字号Ctrl + -
显示快捷键?