亜音速3、SimpleRepository、SQL Serverの:ヌルフィールドを持つ行を見つけるにはどのように?

StackOverflow https://stackoverflow.com/questions/1249944

質問

どのように私は「ヌル」値を含むフィールドを持つ行を検索するために亜音速のFind<T>メソッドを使用して、CA。議論のために、のは、私が「SynchronizedOn」と呼ばれるNULL値可能DateTimeフィールドを含み、またのは、サブソニック移行が対応する「訪問」テーブルと「SynchronizedOn」フィールドを作成したと仮定しましょう「訪問」と呼ばれるAC#クラスを持っていると仮定しましょう。

私はSQLクエリを自分自身を書くことだった場合、私のようなものを記述します:

SELECT * FROM Visits WHERE SynchronizedOn IS NULL

私は次のコードを使用する場合:

var visits = myRepository.Find<Visit>(x => x.SynchronizedOn == null);

サブソニックは、次のSQLクエリに変換します。

SELECT * FROM Visits WHERE SynchronizedOn == null

任意の行を返すことはありません。

私は、次のコードを試してみましたが、それはエラーをスローします:

visits = repository.Find<Visit>(x => x.SynchronizedOn.HasValue);

私は、次の構文を使用することができました

var query = from v in repository.All<Visit>()
            where v.SynchronizedOn == null
            orderby v.CreatedOn
            select v;
visits = query.ToList<Visit>();

しかし、それはFind<T>メソッドを使用してのように素敵なショートではありません。

誰もが、私はFind<T>方法で "SynchronizedOnはNULL IS" 条件を指定することができる方法を知っている?

役に立ちましたか?

解決

あなたが使用することができます:

var visits = myRepository.All<Visit>().Where(x => x.SynchronizedOn == null).ToList();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top