Subsonic 3,Simpleerepository,SQL Server:如何使用空字段找到行?
-
12-09-2019 - |
题
我如何使用亚音速 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();
不隶属于 StackOverflow