【发布时间】:2019-01-22 12:21:10
【问题描述】:
enum 与 automapper 存在问题
我有一个使用enum 作为属性之一的EF 数据集和一个视图模型,用于在带有enum 和ToString 的网格上显示此属性以显示enum 的文本值
我正在使用AutoMapper 将 EF 类映射到 ViewModel 类,但是在加载数据时出现错误
System.NotSupportedException: '指定的类型成员 LINQ to Entities 不支持“DataTableTypeDisplay”。仅有的 初始化器、实体成员和实体导航属性是 支持。
我已尝试将忽略选项添加到 DataTableTypeDisplay 的配置中,但没有任何更改。
如果我删除此属性,但 Grid 只显示 int 的值 Enum,则效果很好
使用AutoMapper v7.0.1
类文件
public class ClassName
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ClassNameId { get; set; }
public DataTableType DataTableType { get; set; }
…
查看模型
public class ClassNameGridViewModel : ChangeControlBase
{
public Guid? ClassNameId { get; set; }
public DataTableType DataTableType { get; set; } = DataTableType.None;
[NotMapped]
public string DataTableTypeDisplay
{
get { return DataTableType.ToString(); }
}
…
AutoMapper 配置
public ClassNameGridViewModelProfile()
{
CreateMap<NS.ClassName, NS.ClassNameGridViewModel>();
CreateMap<NS.ClassNameGridViewModel, NS.ClassName>();
}
枚举
public enum DataTableType
{
None = 0,
Type1 = 1,
Type2 = 2,
Type3 = 3,
}
【问题讨论】:
标签: c# asp.net-mvc entity-framework enums automapper