3

私はmongodb c#ドライバーを使用しており、次のクエリを試しました

collection.AsQueryable().Where(x => x.IsArchived.GetValueOrDefault())

IsArchived の型はbool?(null 許容) です。

次のランタイム エラーが発生します。

Unsupported where clause: x.IsArchived.GetValueOrDefault().

null許容型を照会する方法を知っている人はいますか?

4

3 に答える 3

1

回避策を見つけましたが、あまり良くありません:

collection.AsQueryable().Where(x => x.IsArchived ?? false)
于 2013-06-14T11:34:19.450 に答える
1

ドメインでnull許容型を使用していることは知っていますが、それらを照会する特定のインスタンスを見つけることができないようです. あなたはこれを試すかもしれません:

collection.AsQueryable().Where(x => x.IsArchived == true)

またはこれがコンパイルされない場合:

collection.AsQueryable().Where(x => x.IsArchived == (bool?) true)
于 2013-06-27T16:34:09.010 に答える
0

試す

collection.AsQueryable().Where(x => x.IsArchived!= null && x.IsArchived)

あなたの式は mongo query に変換されます。GetValueOrDefaultこれは例外を与える C# をサポートしていません

于 2013-06-13T17:09:21.057 に答える