下面的单元测试失败的变化,我修改,我已经收回,然后在同一个会议上,我做这似乎考虑到未提交更改我的查询对象已经对该物体做出了决定。NHibernate的查询返回尚未保存到数据库
我怎样才能NHibernate的忽略任何未提交的更改,只查询数据库?
[Test]
public void Test()
{
// Arrange
Area area1 = new Area { Name = "Area 1" };
Area area2 = new Area { Name = "Area 2" };
using (ISession session = SessionFactory.OpenSession())
{
using (var transaction = session.BeginTransaction())
{
session.Save(area1);
session.Save(area2);
transaction.Commit();
}
}
int resultCount;
// Act
using (ISession session = SessionFactory.OpenSession())
{
Area existingArea;
using (var transaction = session.BeginTransaction())
{
existingArea = session.Get<Area>(area1.ID);
}
existingArea.Name = area2.Name;
using (var transaction = session.BeginTransaction())
{
resultCount = session.CreateCriteria<Area>().Add(Restrictions.Eq("Name", existingArea.Name)).List<Area>().Count;
}
}
// Assert
Assert.AreEqual(1, resultCount);
}
(+1)让我多谢你!我也不知道,而且我相信这会在未来帮助我知道。 – gillyb 2010-07-23 10:28:27
btw - 你是从哪里读到的? – gillyb 2010-07-23 10:28:48
我输入'会话'。在Visual Studio中,然后滚动浏览自动完成列表寻找突出的事物。阅读FlushMode.Auto的帮助文本工具提示已将其发送出去。 – Matt 2010-07-23 10:47:56