亚音速3,SimpleRepository时,SQL Server:如何找到一个空字段行?(Subs

2019-09-22 15:17发布

我如何使用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>方法?

Answer 1:

您可以使用:

var visits = myRepository.All<Visit>().Where(x => x.SynchronizedOn == null).ToList();


文章来源: Subsonic 3, SimpleRepository, SQL Server: How to find rows with a null field?