自动映射器:忽略继承类上的属性



我有一个这样的源类:

public class Basket {}

像这样的目标类:

public class BasketModel 
{
public string Property { get; set; }
}

以及这样的映射:

Mapper.CreateMap<Basket, BasketModel>()
.ForMember(x => x.Property, o => o.ResolveUsing(x => "anything"));

现在,我已经使原始模型中的"Property"属性成为虚拟的,并创建了一个从模型继承的新类:

public class BasketModel 
{
public virtual string Property { get; set; }
}
public class BasketModel2 : BasketModel
{
public override string Property 
{ 
get
{
return "some value";
}
}
}

我已经更新了映射:

Mapper.CreateMap<Basket, BasketModel>()
.ForMember(x => x.Property, o => o.ResolveUsing(x => "anything"))
.Include<Basket, BasketModel2>();

并创建了映射

Mapper.CreateMap<Basket, BasketModel2>()
.ForMember(x => x.Property, o => o.Ignore());

现在,当我尝试映射到 BasketModel2 而不是null时,属性的值是"anything"

我在这里错过了什么?

好的,我想我在编写这段代码时有一个脑屁。 模型 2.属性永远不会为 null,因为它是一个始终返回相同字符串的 getter。我有一些重构要做,但是AutoMapper正在做它需要做的事情,我只是用错了。

相关内容

  • 没有找到相关文章

最新更新