Automapper 未映射计算 属性

Automapper not mapping a computed property

我有一个简单的界面,如:

interface IEntity
{
    int EntityID { get; }
}

和一些 classes 使用计算的 属性 实现 EntityID,像这样:

class Person : IEntity
{
    public int PersonID { get; set; }
    public int EntityID => PersonID;
}

我正在尝试使用 Automapper 映射到具有相同 属性 的另一个 class,如下所示:

class Result
{
    public int EntityID { get; }
}

不过我无法让它映射 属性。下面的测试失败了,因为结果中的 EntityID 始终是 0,即使我明确设置了 ForMember() 映射,如下所示:

using AutoMapper;
using Xunit;

public class UnitTest1
{       
    [Fact]
    public void Test1()
    {
        var mapper = new MapperConfiguration(cfg => cfg.CreateMap<IEntity, Result>()
        .ForMember(dest => dest.EntityID, i => i.MapFrom(src => src.EntityID)))
            .CreateMapper();

        var result = mapper.Map<Result>(new Person() { PersonID = 5 });
        Assert.Equal(5, result.EntityID);
    }
}

这里肯定缺少一些明显的解决方案。任何帮助将不胜感激。

对于简单的属性,AM 需要 setter 才能工作,就像手动方法一样。