シナリオ: データ モデルのエンティティがさまざまな情報と共に WCF Web サービスに渡され、データベースに保存された後、追加情報が完全に入力されたオブジェクトが返されます。
public class Request
{
public virtual Guid RequestID { get; set; }
public virtual string RequestType { get; set; }
public virtual System.DateTime CreatedDate { get; set; }
//More properties here populated from DB
}
[OperationContract]
Request CreateRequest(Request input);
この例では、RequestID と CreatedDate は、レコードがデータベースに挿入されたときにのみ入力されるため、最初の要求時には表示されません。ただし、オブジェクトが返されたときに表示されるはずです。
現在行っているアプローチは、エンティティから継承する Web サービス実装プロジェクトで 2 つのクラス (RequestInput、RequestOutput) を作成することです。次に、必要なさまざまなプロパティに [DataMember] 属性を追加し、無視する必要があるプロパティに [IgnoreDataMember] 属性を追加します。
これは正しいアプローチですか?