我如何使用CA亚音速的Find<T>
方法包含了“空”值的字段搜索行。 为了讨论方便,我们假设我有一个名为其中包含一个名为“SynchronizedOn”,也让我们假设亚音速的迁移创造了相应的“访问”表和“SynchronizedOn”字段为空的日期时间字段“访问” C#类。
如果我写的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>
方法。
任何人都知道我怎么可以指定的“SynchronizedOn IS NULL”条件Find<T>
方法?