ご挨拶、
NorthwindサンプルテーブルCustomers、Orders、およびOrderDetailsを考慮して、上記のテーブルに対応する関連エンティティを熱心にロードしたいのですが、エンティティをフェッチする前に、データベースで子エンティティを注文する必要があります。
基本的なケース:
var someQueryable = from customer in northwindContext.Customers.Include("Orders.OrderDetails")
select customer;
ただし、これらのテーブルのランダムな列に関して、データベース側で(これらのエンティティをメモリにフェッチする前に)OrdersとOrderDetailsを並べ替える必要もあります。T-SQLのように、投影なしでそれは可能ですか?ソリューションがエンティティに対してe-SQLまたはLINQのどちらを使用するかは関係ありません。Webを検索しましたが、主に匿名型にデータを投影し、その匿名型を再クエリして子エンティティを希望の順序で取得するため、見つけた答えに満足できませんでした。また、CreateSourceQuery()を使用することは、データベース側でデータをそのまま取得する必要があるため、オプションではないようです。読み込みは熱心ですが、子エンティティを並べ替えるだけです。つまり、クエリを実行する前に「ORDER BY」を実行してから、希望する順序でエンティティをフェッチします。ご指導ありがとうございます。個人的なメモとして、私はMicrosoftにLinq to SQL(彼らはゆっくりと逃げているように見えます)と比較してもそのような未熟な形でEFをリリースすることに少し腹を立てているので、直接の言葉を許してください。このEFのものが、.NET FX 4.0のリリースバージョンで重大なバグなしに、はるかに良くなることを願っています。