0

EF4 の linq クエリに含める必要がある 3 つのテーブルがあります。また、dbcontext ジェネレーターを使用して poco クラスを生成しています。linq クエリは poco オブジェクトをクエリしています。

願わくば、以下で、基になるデータベースでテーブルがどのように関連付けられているかを明確に説明してください。

OrderDetails > - 1 本 1 - < BookCategories

ご覧のとおり、1 冊の本に複数のカテゴリがあり、1 冊の本が複数の注文に表示される場合があります。

特定のカテゴリで最も売れている本を取得しようとしています。

これまでのところ、以下のように全体的にベストセラーの本を手に入れることができましたが、これを拡張して where 句の基準として本のカテゴリを含めることはできないようです

var topSellingBooks = (from p in this.context.OrderDetails
                        where p.IssueId == issueId && p.PublicationId != "4TC" 
                        group p by p.BookId
                        into bookGroup
                        select new 
                            { 
                                BookNo = bookGroup.Key, 
                                BookCount = bookGroup.Sum(q => q.Quantity) 
                            }).OrderByDescending(q => q.BookCount)
                              .Take(noOfBooks);

ナビゲーション プロパティを使用して、追加できると思っていました

&& p.Books.BookCategories.CategoryId_FK=="MyCatId"

上記のどこの基準にも当てはまりますが、これは不可能のようです。上記を使用して BookCategories のプロパティにアクセスできません。

これは何が起こっているかを確認するのに十分な情報ですか。誰でもポインタを持っていますか?

ありがとう

4

1 に答える 1