0
場景:來自數據模型的實體通過各種信息被傳遞到WCF Web服務中,並保存到數據庫中,然後返回對象,並完全填充其他信息。根據輸入/輸出更改WCF Web服務上的DataMember屬性?
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服務實現項目中創建兩個類(RequestInput,RequestOutput),它從實體繼承。 然後,我們將在需要忽略的各種屬性上添加[DataMember]屬性,並在這些屬性上添加[IgnoreDataMember]。
這是正確的方法嗎?
我們最初討論的是將它解耦,但從Web服務Request對象到Request對象模型的附加映射似乎引發了一些代碼重複。 – 2012-02-22 13:24:38