親と有効なcolumnNameが与えられた場合、動的な列名で並べ替えられた、関連するすべての子を検索します。これが私のコードがどのように見えるかを私が思った方法です:
Parent. // EntityObject
Children. // EntityCollection
Where(c => c.Gender == 'm'). // IEnumerable
OrderBy(columnName, ListSortDirection.Ascending). // -- not available --
Skip(pages * pageSize).Take(pageSize);
IEnumerable.OrderBy(string columnName)は存在しません。「動的列名による並べ替え」を実行するために周りを見回して、この見栄えの良いソリューションから始めました。実行時の並べ替え用の式ツリーを作成するにはどうすればよいですか。、ただし、これはIQueryableで動作します
もしそうなら、とにかく私のポケットベルのパフォーマンスを分類して低下させるために、それがネットワークを介してレコードをもたらすだろうと私は思います。だから私は再注文しました:
Repository. // Repository
Children. // ObjectSet
Where(c => c.Parent == Parent && c.Gender == 'm'). // ObjectQuery, runtime error
OrderBy(columnName, ListSortDirection.Ascending). // IOrderedQueryable
Skip(pages * pageSize).Take(pageSize);
ObjectSetとObjectQueryはOrderBy(string columnName)を実装し、このコードはコンパイルされますが、エラーが発生します。
タイプ'DataModel.Parent'の定数値を作成できません。このコンテキストでは、プリミティブ型('Int32、String、Guid'など)のみがサポートされます。
もちろん、親IDを取得することはできますが、Child.ParentReferenceも非プリミティブ型です。
レコードセット全体をネットワーク経由でロードする方法はいくつか考えられますが、すべてのMSを使用してデータベースに基本的なディレクティブのセットを渡すのはそれほど難しくないので、何かが足りないように感じます。中心的なテクノロジー。
編集:私がhttp://en.wikipedia.org/wiki/Quiverfullであるふりをして、子供にページを付ける必要があります。:) edit2:動的列名を照会する必要があることを明確にしました。