我目前正在开发一个n层Web项目.在研究了数据传输对象及其优势后,我们决定采用这种模式.我们的ASP.NET MVC网站无法直接访问EF DbContext,而是使用DTO发送和接收实体数据.将有一个服务/映射层将在DTO和实体模型之间进行转换.
我的问题是,将实体模型导航属性转换为DTO的最佳方法是什么?
以下是项目中实体模型及其DTO的示例:
实体模型:
public class Payment
{
public int ID { get; set; }
public DateTime? PaidOn { get; set; }
public decimal Amount { get; set; }
public string Reference { get; set; }
//Navigation Properties
public virtual PaymentMechanism PaymentMechanism { get; set; }
public virtual ICollection<Order> Orders { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
DTO:
public class PaymentDto
{
public int ID { get; set; }
public DateTime? PaidOn { get; set; }
public decimal Amount { …Run Code Online (Sandbox Code Playgroud)