Automapper 是可能的设置一个约定,以便在您要映射到的实体只是附加了“ViewModel”的情况下,不必手动创建 map 。
例如,我宁愿不必设置以下 map :
Mapper.CreateMap<Error, ErrorViewModel>();
我知道如果需要投影我需要创建一个自定义 map ,但是有一个创建 map 的约定会很好。
最佳答案
您需要使用 Mapper.DynamicMap<TDest>(source)
进行映射。
正如您在下面的示例中看到的,它会自动将匹配的属性从源映射到目标。
using AutoMapper;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
var source = new Foo {Value = "Abc"};
var destination = Mapper.DynamicMap<FooViewModel>(source);
Debug.Assert(source.Value == destination.Value);
}
}
public class Foo
{
public string Value { get; set; }
}
public class FooViewModel
{
public string Value { get; set; }
}
关于c# - Automapper公约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2030227/