【发布时间】:2020-12-08 13:13:22
【问题描述】:
我想将数据对象复制到同类型嵌套的数据传输对象中。
C#
public class Data
{
public int Id { get; set; }
public string SomeInfo { get; set; }
public virtual ICollection<Data> Data { get; set; }
}
public class DTOData
{
public int Id { get; set; }
public string SomeInfo { get; set; }
public virtual ICollection<DTOData> Data { get; set; }
}
List<Data> data = new List<Data>();
data.Add(new Data(){Id =1, SomeInfo = 'sometext' });
List<DTOData> dtoData = new List<DTOData>();
dtoData.Add(new DTOData(){Id =10, SomeInfo = 'sometext2' });
我想将数据对象复制到 DTOData(数据传输对象)。
我的方法
dtoData = (DTOData) data;
但它会抛出类型不匹配的异常。如何将数据对象复制到 DTOData 对象,主要的复杂性在于它具有嵌套的自引用。请帮忙。
【问题讨论】:
-
您必须遍历每个对象并手动为每个副本创建一个新对象,分别分配每个属性。
-
vish,它是一个动态对象,我们不知道嵌套对象有多深。嵌套是指数据的收集。那是我的问题。
-
那么你也可以让 DTO 数据动态化
标签: c# asp.net asp.net-mvc entity-framework