私は、PersonオブジェクトのJSON連載リストを提供する「読み込み」メソッドを持つWCF Webサービスを持っています。これらのPersonオブジェクトのそれぞれは、それぞれのStatusオブジェクトによって表される特定のステータスを有する。これは、Entity Frameworkによって外部キー関係としてマップされます。ASP.NET/WCF:JSON外部キーを実際のオブジェクトに戻す
JSON出力の場合、各PersonのStatusを完全なネストされたオブジェクトとしてシリアル化する必要はありません。代わりに、Webサービスにそれぞれの "ステータスID"を含めることを望みました。
[DataContract]
public class Status
{
public Status() {}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[DataMember(Name = "StatusId")]
public int StatusId { get; set; }
[DataMember(Name = "Description")]
public string Description { get; set; }
}
[DataContract]
public class Person
{
public Person() {}
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[DataMember(Name = "PersonId")]
public int PersonId { get; set; }
[DataMember(Name = "Name")]
public string Name { get; set; }
public Status Status { get; set; }
[DataMember(Name = "StatusId")]
[NotMapped]
public int JsonStatusId
{
get
{
if (Status == null) return -1;
return Status.StatusId;
}
set {}
}
}
そして、次のように私のWebサービスメソッドになります:それは私がそれをやった方法です
[OperationContract]
[WebGet]
public List<Person> Persons()
{
return _dbContext.Persons.
Include(person => person.Status)
Select(person => person).
ToList();
}
これまでのところ、すべてが素晴らしい作品ということ。しかし、私のWebAppがエンティティの1つに対して更新要求を送信するとき、StatusIdを実際のStatusオブジェクトにマップする方法はわかりません。つまり、変更されたStatusIdを持つ更新されたPersonオブジェクトを含むJSONリクエストを取得します。正しいStatusオブジェクトを参照するPersonオブジェクトを受け取る適切な方法はありますか?
は、事前にすべてのいただきありがとうござい フロリアン