我正在使用mongodb c#驱动程序并尝试了以下查询
collection.AsQueryable().Where(x => x.IsArchived.GetValueOrDefault())
其中IsArchived的类型为bool?
(可为空)。
我收到以下运行时错误:
Unsupported where clause: x.IsArchived.GetValueOrDefault().
有人知道如何查询可空类型吗?
答案 0 :(得分:1)
我发现了一种解决方法,虽然它不是很好:
collection.AsQueryable().Where(x => x.IsArchived ?? false)
答案 1 :(得分:1)
我知道我们在域中使用可空类型,但似乎找不到任何特定的查询它们的实例。你可以试试这个:
collection.AsQueryable().Where(x => x.IsArchived == true)
或者,如果不编译:
collection.AsQueryable().Where(x => x.IsArchived == (bool?) true)
答案 2 :(得分:0)
尝试
collection.AsQueryable().Where(x => x.IsArchived!= null && x.IsArchived)
你的表达式转换为mongo查询,不支持C#GetValueOrDefault
,它会为你提供异常