1

LINQtoNHibernateを使用してSQLiteデータベースにクエリを実行しています。

PersonIDと名前を含むエンティティです:

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

私のdbテーブルに「John」という名前の人が1人含まれているとします。

このテストは期待どおりに機能します。

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());

私は何が欠けていますか?

4

1 に答える 1

3

呼び出しWhereても既存のクエリは変更されず、新しいクエリが作成されます。新しいクエリを使用する場合は、何かに割り当てる必要があります。

var query2 = query.Where(item => item.Name == "Mike");
于 2010-05-02T19:59:37.927 に答える