Odata展開は常に左結合を生成します

Aug 21 2020

Odata拡張は常に左結合を生成します。そして、これにより、不要なデータが結果に含まれるようになります。モデルはリンクの下にあります

Odataを使用したEFに基づくDTOのクエリ

ExplicitExpansion()により、OData展開が機能しなくなります

回答

MichaelWang Aug 24 2020 at 10:06

ODataプロトコルは(内側/外側/左/右)のJOINような操作をサポートしていませんSQL。関係は、いわゆる「ナビゲーション」プロパティとして表されます。データがSQLテーブルに基づいている場合は、正確で複雑な結合をサーバーAPIで定義する必要があります。

$expand複数結合に似たものを使用することもできます。

$expand オプションの外部キーに対しても左結合を生成します。

左結合(デフォルト)

URL: / odata / clientcontract?$ expand = ContactsInfo

内部結合

URL: / odata / clientcontract?$ expand = ContactsInfo&$ filter = ContactsInfo / any()