SubsonicのFind<T>
メソッドを使用して、「null」値を含むフィールドを持つ行を検索するにはどうすればよいですか。説明のために、「SynchronizedOn」というnull許容のDateTimeフィールドを含む「Visit」というac#クラスがあり、Subsonic移行によって対応する「Visits」テーブルと「SynchronizedOn」フィールドが作成されたと仮定します。 。
SQLクエリを自分で作成する場合は、次のように作成します。
SELECT * FROM Visits WHERE SynchronizedOn IS NULL
次のコードを使用する場合:
var visits = myRepository.Find<Visit>(x => x.SynchronizedOn == null);
Subsonicはそれを次の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>
しかし、それはメソッドを使用するほど短いものではありません。
メソッドで「SynchronizedOnISNULL」条件を指定する方法を知っている人はいますFind<T>
か?