考虑到这些类型
public enum Foo
{
[Display("The bar")]
Bar
}
public class Widget
{
public Foo MyProperty { get; set; }
}
public class WidgetDTO
{
public string MyPropertyDisplayAttribute { get; set; }
}
如何使用
Automapper
和
ProjectTo()
? 假设扩展方法
GetDisplayName()
获取显示属性的值。此代码:
.ForMember(dest => dest.MyPropertyDisplayAttribute,
opts => opts.MapFrom(src => src.MyProperty.GetDisplayName()))
正如所料:
系统NotSupportedException:“LINQ to Entities无法识别该方法”系统。字符串GetDisplayName(System.Enum)'方法,并且无法将此方法转换为存储表达式。'
我当然可以在映射DTO并更新其属性后对其进行迭代,但我正在寻找一种不需要额外步骤的解决方案。