可通过使用 AutoMapper 的“IgnoreUnmapped”选项来防止此问题发生。示例如下:
// 定义源类
public class SourceClass
{
public int Id { get; set; }
public List
public class SourceItemClass { public int Id { get; set; } public string Name { get; set; } }
// 定义目标类
public class DestinationClass
{
public int Id { get; set; }
public List
public class DestinationItemClass { public int Id { get; set; } public string Name { get; set; } }
// 使用 AutoMapper 进行映射
var config = new MapperConfiguration(cfg => {
cfg.CreateMap
var mapper = config.CreateMapper();
var source = new SourceClass {
Id = 1,
Items = new List
var destination = new DestinationClass {
Id = 999,
Items = new List
mapper.Map(source, destination);
// 验证目标类嵌套列表元素的值是否被保留 Console.WriteLine(destination.Items.Count); // 2
foreach (var item in destination.Items) { Console.WriteLine($"Id:{item.Id} Name:{item.Name}"); // 输出结果: // Id:100 Name:Existing Item 1 // Id:200 Name:Existing Item 2 }