我如何使用亚音速 Find<T> 使用包含“ null”值的字段搜索行的方法。为了讨论,让我们假设我有一个称为“访问”的AC#类,其中包含一个可无效的DateTime字段,称为“ Synchronizedon”,也假设亚音音迁移创建了相应的“访问”表和“ Synchronizedon”字段。

如果我自己写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> 方法?

有帮助吗?

解决方案

您可以使用:

var visits = myRepository.All<Visit>().Where(x => x.SynchronizedOn == null).ToList();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top