【发布时间】:2017-04-04 14:36:23
【问题描述】:
我在这方面看到了一些类似的主题,但没有一个回答我的问题,我现在很挣扎,不得不问。
我有两个对象,一个名为 Customer,另一个是名为 customerDto 的数据传输对象。
客户:
public partial class Customer
{
[DataMember]
public int Id { get; set;}
[DataMember]
public string Title { get; set;}
[DataMember]
public string FirstName { get; set;}
[DataMember]
public string Middle { get; set;}
[DataMember]
public string LastName { get; set;}
[DataMember]
public string Email { get; set;}
[DataMember]
public string HomePhone { get; set;}
[DataMember]
public string MobilePhone { get; set;}
[DataMember]
public string AddressLine1 { get; set;}
[DataMember]
public string AddressLine2 { get; set;}
[DataMember]
public string PostCode { get; set;}
[DataMember]
public DateTime? DateOfBirth { get; set;}
[DataMember][DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string FullName { get; private set;}
}
public partial class Customer
{
public virtual ICollection<DeliveryDetail> DeliveryDetails { get; set; }
public virtual ICollection<Order> Order { get; set; }
}
CustomerDto:
public class CustomerDto : ICloneable
{
public int Id { get; set; }
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string PostCode { get; set; }
public string Title { get; set; }
public string Email { get; set; }
public string HomePhone { get; set; }
public string MobilePhone { get; set; }
public DateTime? DateOfBirth { get; set; }
}
我需要比较它们共享的属性,但我不想编写多行 if 语句,因为那很混乱。有没有办法做到这一点?
我只需要看看他们共享的任何属性是否存在差异。如果有不同,那么我们可以改进和更新客户。
提前致谢。
【问题讨论】:
-
为什么不创建一个子类,然后在那个元素上进行比较?
-
您也可以使用反射来比较具有相同名称的字段,但我认为子类化或制作接口可能更好