【发布时间】:2021-07-01 18:30:11
【问题描述】:
我有一个简单的界面,例如:
interface IEntity
{
int EntityID { get; }
}
以及一些使用EntityID 的计算属性实现的类,如下所示:
class Person : IEntity
{
public int PersonID { get; set; }
public int EntityID => PersonID;
}
我正在尝试使用 Automapper 映射到具有相同属性的另一个类,如下所示:
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);
}
}
这里必须有一些明显的解决方案。任何帮助将不胜感激。
【问题讨论】:
-
我很确定 ti 可以在没有映射器的情况下工作;)
-
二传手在哪里? :)
-
@Lucian Bargaoanu 。天哪,我是个白痴!添加二传手修复它。我知道我必须做一些愚蠢的事情。谢谢,如果您将该评论添加为答案,我会接受。
标签: c# automapper