Я пытаюсь отобразить объекты одного типа, которые имеют набор дочерних объектов, и я обнаружил, что Ignore(), примененный к свойствам дочернего объекта, кажется, umm ... игнорируется!AutoMapper Игнорировать на свойство дочерней коллекции
Вот примерный тест, который демонстрирует проблему.
class A
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<B> Children { get; set; }
}
class B
{
public int Id { get; set; }
public string Name { get; set; }
}
[TestClass]
public class UnitTest1
{
[TestInitialize()]
public void Initialize()
{
Mapper.CreateMap<A, A>()
.ForMember(dest => dest.Id, opt => opt.Ignore());
Mapper.CreateMap<B, B>()
.ForMember(dest => dest.Id, opt => opt.Ignore());
}
[TestMethod]
public void TestMethod1()
{
A src = new A { Id = 0, Name = "Source", Children = new List<B> { new B { Id = 0, Name = "Child Src" } } };
A dest = new A { Id = 1, Name = "Dest", Children = new List<B> { new B { Id = 11, Name = "Child Dest" } } };
Mapper.Map(src, dest);
}
После карте называют свойство Id Объект находится еще один, как и ожидалось, но свойство Id дочернего B объекта изменяется от 11 до 0.
Почему?