次のテーブル構造があります。

Linq To SQL を使用して、次のようなリストを取得したいと考えています。
new {
    E = e,      // the E object
    Ds = e.Ds,  // list of D objects referenced by E
    NumAs = ??? // COUNT OF A objects that are eventually associated with this E
}
しかし、私はこれらのものを各Eに関連付けられたAの数でソートしたいと思っています.
joins/orderby とネストされたクエリの組み合わせを使用しようとしていますが、それを取得する方法がわかりません。
テーブル E からテーブル A への参照を作成すると、それは些細なことのように思えます。すなわちこれ:

from e in ctx.E
orderby e.As.Count()
select new {
   E     = e,
   Ds    = e.Ds,
   numAs = e.As.Count()
} 
しかし、その参照は、ある種の DB 正規化ルールを破っているのでしょうか?