問題がフィールドAddress
がエンティティセットTestEntity
の$expand
句のないo-data getコールで返されない問題です。コードでは有効なAddress
オブジェクトを割り当てています。関連するエンティティをodata応答でシリアライズ
は、我々はすでに
public class TestEntity
{
[Key]
public long Id { get; set; }
public string A { get; set; }
public Address Address { get; set; }
}
public class Address
{
[Key]
public long Id { get; set; }
public string Val { get; set; }
}
以降では、我々は実体としてもアドレスを公開することを決定したウェブ-APIを介して公開O-データの実体を持っていた、と我々はAddress
、どこのクライアントのための鍵とコントローラを追加しましたアドレスを作成して他のエンティティと関連付けることができます。しかし、Address
が変更されたため、TestEntity
クラスの一部として返されなくなりました。 Address
はデフォルトでは返されないナビゲーションプロパティになっていますので、クライアントは$expand
節を送信する必要があります。しかし、私たちは既存のクライアントを壊すことは望まないので、クライアントに$expand
節を送っていなくてもそれを返す必要があります。これを達成する方法は?
残念ながら古いバージョン5.3ですが、バージョンを変更できません。 – user2845026
次に、EntitiesControllerの 'Get'メソッドの中でAddressオブジェクトを手動で取得するコードを追加する必要があります。 – lencharest
私のクラスでは、 'Address'を読み、TestEntityに記入するコードを追加しましたが、問題はWeb APIがその値をシリアル化していないことです。ワイヤ上では、 'Address'の値がシリアル化されていないことがわかります – user2845026