書籍用のカスタムODataフィードがあります。それぞれの本は複数の著者を持つことができ、著者は複数の本に関わることができるので、私はこれを結合表(Book - BookAuthorJoin - Author)を使って実装しました。私の代理オブジェクトにはBook.BookAuthorJoins BookAuthorJoin.Booksがあります。& BookAuthorJoin.Authors。二重ネストされたODataコレクションにLINQを使用する
私がやりたいことは、単一のLINQクエリで著者のすべての書籍を取得するが、フィルタの適用に問題があるという単一のクエリがあります。 2つのExpand()メソッドが必要ですが、それは機能しません。次のクエリは動作しますが、私がやろうとしているかを示していません:サーバー側で
var query = from book in ODataContext.Books.Expand("BookAuthorJoins").Expand("Authors")
where book.BookAuthorJoins.Author.AuthorID = authorID
select book;
Vitek-ありがとう...これを隠して私の挑戦は、私の結合テーブルにも別のフィールドが含まれているということです:並べ替え順序(書籍には一次および二次著者があるので)。だから私はこれを維持する必要がある。 –
次に、展開を含む2番目のサンプルだけがこれを行う方法です。 $ selectを使用すると、サイズを小さくしたい場合にクライアントが取得するプロパティの数を制限できますが、結果には結合テーブルの結果と書籍の両方が含まれます。 –