LiveLinq は、クエリーですべての LINQ クエリー演算子をサポートします。必ずしもすべての演算子に LiveLinq 固有の実装があるわけではなく、インデックスなどのクエリー実行最適化技術の恩恵を受けることはできませんが、そのような演算子では、単に標準の LINQ to Objects(または LINQ to XML)実装が使用されるため、ユーザーからは透過的です。
ただし、ライブビューでは、必ずしもすべてのクエリー演算子を使用できません。これは、一部のクエリー演算子は管理のたびに最初から再生成(再クエリー)する必要があり、インクリメンタルビューメンテナンスアルゴリズムを備えていないためです。クエリーにこのような演算子が含まれる場合、そのクエリーを使用してライブビューを作成することはできません。作成しようとすると、コンパイルエラーが発生します。
次に、ライブビューで使用できるクエリー演算子をリストします。
演算子 | 説明 |
---|---|
Select | インデックスに依存する selector を使用したオーバーロードは許可されません。 |
Where | インデックスに依存する predicate を使用したオーバーロードは許可されません。 |
Join | comparer を使用したオーバーロードは許可されません。 |
GroupJoin | comparer を使用したオーバーロードは許可されません。 |
OrderBy | comparer を使用したオーバーロードは許可されません。 |
OrderByDescending | comparer を使用したオーバーロードは許可されません。 |
GroupBy | comparer を使用したオーバーロードは許可されません。 |
SelectMany | インデックスに依存する selector および collectionSelector を使用したオーバーロードは許可されません。 |
Union | |
Concat | |
Aggregate | インクリメンタルビューメンテナンスを使用してパフォーマンスを最適化する場合は、LiveAggregate メソッドを使用してください。 |
Count | インクリメンタルビューメンテナンスを使用してパフォーマンスを最適化する場合は、LiveCount メソッドを使用してください。 |
Min/Max | インクリメンタルビューメンテナンスを使用してパフォーマンスを最適化する場合は、LiveMin メソッドを使用してください。 |
Sum | インクリメンタルビューメンテナンスを使用してパフォーマンスを最適化する場合は、LiveSum メソッドを使用してください。 |
Average | インクリメンタルビューメンテナンスを使用してパフォーマンスを最適化する場合は、LiveAverage メソッドを使用してください。 |