我可以使用Subsonic的
如果我要自己编写SQL查询,我会写类似以下的语句:
当我使用以下代码时:
Subsonic将其转换为以下SQL查询:
Find<T>
方法来搜索包含“null”值的字段的行。为了讨论方便,假设我有一个名为“Visit”的C#类,其中包含可为空的DateTime字段“SynchronizedOn”,并且假设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>
方法并不像直接使用它那么简单明了。
有人知道我该如何在Find<T>
方法中指定"SynchronizedOn IS NULL"条件吗?