OData を使用すると、エンティティ間の関係を定義できます。Web API 2.2 for OData V4 を使用してサービスを作成しているようです。この場合、次のように製品とアカウントの間の関係を構築できます。
まず、製品の POCO クラスの定義で、そのアカウントのナビゲーション プロパティを追加する必要があります。
public class Product{
public int Id {get;set;}
public string AccountId {get;set;}
public Account Account {get;set;} // define "Account" as a navigation property of Product
public class Account{
public int Id {get;set;}
public string Name {get;set;}
public Address Address {get;set;} // Address may be a complex type
public int ColorCode {get;set;}
}
次に、 から継承するクラスで、DbContext
両方のエンティティに関する情報を次の場所に追加します。
public virtual DbSet<Product> Products { get; set; }
public virtual DbSet<Account> Accounts { get; set; }
最後に、WebApiConfig.cs で、ODataConventionModelBuilder
必要に応じて使用してモデルを定義します。モデル ビルダーは、POCO クラスからの関係を自動的に認識し、モデルを生成します。
サービスが構築された後、クライアント側で、クライアントは次のようなリクエストを送信して、製品とそのアカウントのカラーコードを取得します。
GET http://host/service/Products?$expand=Account($select=ColorCode)
ここで例を確認できます: http://services.odata.org/v4/(S(xrtmlkz1igiqidututicmb2t))/TripPinServiceRW/People ?$expand=Trips($select=TripId)