다음 단원 테스트가 실패합니다. 검색 한 객체를 변경 한 다음 동일한 세션에서 미사용 변경 사항을 고려한 쿼리를 만듭니다. 그 물건을 만들었 어.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
btw - 어디서 읽었습니까? – gillyb
'session'을 입력했습니다. Visual Studio에서 자동 완성 목록을 스크롤하여 눈에 띄는 것들을 찾습니다. FlushMode.Auto에 대한 도움말 텍스트 툴팁을 읽으면서 그것을 버렸습니다. – Matt