假设我有一组嵌套的业务对象:
public class Customer
{
public int ID { get; set; }
public string Name { get; set; }
public Address Address { get; set; }
}
public class Address
{
public int ID { get; set; }
public string Street { get; set; }
// ...
public AddressType Type { get; set; }
}
public enum AddressType
{
Billing,
Mailing
}
现在假设我只想更新客户的姓名。我遇到的问题是我仍然必须为嵌套对象提供所有数据,即使我调用的服务方法忽略了它们。
问题是枚举、ID 和其他值不能为空。所以 EF 抱怨数据为空。
为了完成这项工作,我必须向我的对象添加虚拟数据(服务方法将再次忽略这些数据)。当我可能只需要数据的一个子集时,似乎没有必要来回发送一个完整的对象。
有没有更好的方法来处理 EF/WCF 的部分更新?
编辑:
假设 WCF 服务有方法:
public void UpdateCustomer (Customer customer)
我想传递一个Customer
大部分是空的服务,只包含改变的值Name
加上ID