2010-05-02 6 views
1

Hibernate에 LINQ를 사용하여 SQLite 데이터베이스를 쿼리하고 있습니다.Linq가 Queryable.Where 술어를 사용하여 NHibernate에 연결합니다.

public class Person 
{ 
    public Guid Id { get; private set; } 
    public string Name { get; private set; } 
} 

하는의 내 DB 테이블 이름이 ""입니다 한 사람이 포함되어 있다고 가정 해 봅시다 :

Person

는 ID와 이름을 포함하는 엔티티입니다.

var query = from item in session.Linq<Person>() 
      where (item.Name == "Mike") 
      select item; 

// no such entity should exist 
Assert.IsFalse(query.Any()); 

하지만,이 하나가 실패 : 나는 무엇을 놓치고

var query = from item in session.Linq<Person>() 
      select item; 
query.Where(item => item.Name == "Mike"); 

// following line actually returns the 
// "John" entry 
Assert.IsFalse(query.Any()); 

이 테스트는 예상대로 작동?

답변

3

Where을 호출해도 기존 쿼리가 변경되지 않고 새 쿼리가 만들어집니다. 새 쿼리를 사용하려면 무언가에 할당해야합니다.

var query2 = query.Where(item => item.Name == "Mike"); 
+0

+1 나는 그것을 볼 수 없다고 나는 믿을 수 없다. 나는 쉬는 시간이 필요합니다. 고마워요! – Groo

관련 문제