场景:来自数据模型的实体被传递到带有各种信息的 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 服务实现项目中创建两个类(RequestInput、RequestOutput),它们继承自实体。然后,我们将在需要的各种属性上添加 [DataMember] 属性,在应该忽略的属性上添加 [IgnoreDataMember]。
这是正确的方法吗?