0

Linq to Entities OrderBy()のカスタムIComparerと同等のものを実装するにはどうすればよいですか?

カスタム比較機能は、 MSDNドキュメントに記載されているように、LinqtoEntitiesではサポートされていません。

IComparerLINQ to Entitiesでは、比較対象をデータソースに変換できないため、を受け入れるものを除いて、ほとんどのLINQ順序付け方法がサポートされています。詳細については、「LINQtoEntitiesクエリの標準クエリ演算子」を参照してください。

4

1 に答える 1

1

カスタムを使用する場合はIComparer、最初にデータベースで並べ替えを実行できるかどうかを自問する必要があります。AsEnumerableそうでない場合は、シーケンスを呼び出してから、サーバーで並べ替えます。

データベースで並べ替えることができる(そして並べ替えたい)場合は、並べ替えを実行するためにどのような変換を行う必要があるかを検討する必要があります。複雑な変換がある場合は、それをSQL関数として記述し、データコンテキストに追加できます。

from e in context.Entities
let hours = context.Get32HourValue(e.Time)
orderby hours
select e
于 2012-05-18T14:30:15.820 に答える