我正在尝试将模型从提供者项目自动映射到 wcf 数据合同。但是,它们在原始(嵌套)中都有另一个模型/数据合同。例如:我们有一个客户端模型,包含姓名、电话号码、EIN 等信息……但是每个客户端可以有多个联系人(另一个模型)。我将如何使用流利的映射在自动映射器中映射它?以下是课程。
数据合同
客户数据合同
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace DSP.NET.WholeSale.Service.DataContracts
{
[DataContract]
public class ClientDataContract
{
[DataMember]
public int? Id { get; set; }
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
[DataMember]
public string Organization { get; set; }
[DataMember]
public string Email { get; set; }
[DataMember]
public string UserName { get; set; }
[DataMember]
public string Password { get; set; }
[DataMember]
public List<ContactDataContract> Contacts { get; set; }
[DataMember]
public string WorkPhone { get; set; }
[DataMember]
public string HomePhone { get; set; }
[DataMember]
public string MobilePhone { get; set; }
[DataMember]
public string FaxNumber { get; set; }
[DataMember]
public string Language { get; set; }
[DataMember]
public string CurrencyCode { get; set; }
[DataMember]
public string Notes { get; set; }
[DataMember]
public AddressDataContract PrimaryAddress { get; set; }
//public Address MailingAddress { get { return this.PrimaryAddress; } set { this.PrimaryAddress = value; } }
//public Address PostalAddress { get { return this.PrimaryAddress; } set { this.PrimaryAddress = value; } }
[DataMember]
public AddressDataContract SecondaryAddress { get; set; }
//public Address BillingAddress { get { return this.SecondaryAddress; } set { this.SecondaryAddress = value; } }
[DataMember]
public string VATName { get; set; }
[DataMember]
public int? VATNumber { get; set; }
}
}
联系数据合同
using System.Runtime.Serialization;
namespace DSP.NET.WholeSale.Service.DataContracts
{
[DataContract]
public class ContactDataContract
{
[DataMember]
public int Id { get; set; }
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
[DataMember]
public string Organization { get; set; }
[DataMember]
public string Email { get; set; }
[DataMember]
public string UserName { get; set; }
[DataMember]
public string Password { get; set; }
[DataMember]
public string WorkPhone { get; set; }
[DataMember]
public string HomePhone { get; set; }
[DataMember]
public string MobilePhone { get; set; }
[DataMember]
public string FaxNumber { get; set; }
// TODO: Language Code also
// TODO: Currency Code
[DataMember]
public string Notes { get; set; }
[DataMember]
public AddressDataContract PrimaryAddress { get; set; }
//public Address MailingAddress { get { return this.PrimaryAddress; } set { this.PrimaryAddress = value; } }
//public Address PostalAddress { get { return this.PrimaryAddress; } set { this.PrimaryAddress = value; } }
[DataMember]
public AddressDataContract SecondaryAddress { get; set; }
//public Address BillingAddress { get { return this.SecondaryAddress; } set { this.SecondaryAddress = value; } }
[DataMember]
public string VATName { get; set; }
[DataMember]
public int? VATNumber { get; set; }
}
}
提供者模型
客户模型
public class Client
{
public int? Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Organization { get; set; }
public string Email { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public List<Contact> Contacts { get; set; }
public string WorkPhone { get; set; }
public string HomePhone { get; set; }
public string MobilePhone { get; set; }
public string FaxNumber { get; set; }
public string Language { get; set; }
public string CurrencyCode { get; set; }
public string Notes { get; set; }
public Address PrimaryAddress { get; set; }
public Address MailingAddress { get { return this.PrimaryAddress; } set { this.PrimaryAddress = value; } }
public Address PostalAddress { get { return this.PrimaryAddress; } set { this.PrimaryAddress = value; } }
public Address SecondaryAddress { get; set; }
public Address BillingAddress { get { return this.SecondaryAddress; } set { this.SecondaryAddress = value; } }
public string VATName { get; set; }
public int? VATNumber { get; set; }
}
联系方式
public class Contact
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Organization { get; set; }
public string Email { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string WorkPhone { get; set; }
public string HomePhone { get; set; }
public string MobilePhone { get; set; }
public string FaxNumber { get; set; }
// TODO: Language Code also
// TODO: Currency Code
public string Notes { get; set; }
public Address PrimaryAddress { get; set; }
public Address MailingAddress { get { return this.PrimaryAddress; } set { this.PrimaryAddress = value; } }
public Address PostalAddress { get { return this.PrimaryAddress; } set { this.PrimaryAddress = value; } }
public Address SecondaryAddress { get; set; }
public Address BillingAddress { get { return this.SecondaryAddress; } set { this.SecondaryAddress = value; } }
public string VATName { get; set; }
public int? VATNumber { get; set; }
}