どのようにAsp.NetのWeb APIで複雑な型のプロパティを持つ深いシリアル化オブジェクトを返すには?

私は次のクラスを持っています:

public class Event
{
   public int Id { get; set; }
   public string Title { get; set; }
   public string Description { get; set; }
   public List Images { get; set; }
}

public class ImageLink
{
   public int Id { get; set; }
   public string Url { get; set; }
}

私の行動:

public IQueryable GetEvents()
{
    var events = EventsRepository.Events.AsQueryable();
    return events;
}

EventsRepository.Events - 私には多くのimageslinkのイベントが返されますが、brouserでは私はそれらを見ません:

 "odata.metadata":"http://localhost:28286/odata/$metadata#Events","value":[
    {
      "Title":"Title", 
      "Description":"Description"
    },...

私はOdataに$拡張オプションがあることを知っていますが、まだサポートされていないようです。 深い直列化可能なオブジェクトを返すようにアプリケーションを強制するにはどうすればよいですか?クライアントにすべてのデータを含めたいからです。

2

1 答え

ImageLinkが複合型としてモデル化されている場合、Eventの応答ペイロードにはImageLinkインラインが含まれます。あなたは、モデルビルダーに、ImageLinkを複雑なタイプとして、

modelBuilder.ComplexType();

これを行う適切な方法は$ expandを使うことです。私たちは$ selectと$ expandのサポートに取り組んでおり、来週早々に夜間ビルドの作業ビットを用意する必要があります。

2
追加された
変更に関する通知を受け取るために何かを購読することはできますか?
追加された 著者 Roman Bats,
この RSSフィードには、 aspnetwebstackプロジェクトのソースコードをコミットします。とにかく、私はここにコメントを投稿するか、私たちに何かがあったらあなたにpingすることを覚えています。
追加された 著者 RaghuRam Nadiminti,
$ selectと$ expandは夜間ビルドで利用できます。これを確認する私たちの夜間ビルドの使い方についての投稿
追加された 著者 RaghuRam Nadiminti,