Возникла проблема с enum
с automapper
У меня есть набор данных EF, использующий enum
в качестве одного из свойств и модель представления для отображения этого на сетке с помощью enum
и ToString
для отображения текстового значения enum
Я использую AutoMapper
для сопоставления класса EF с классом ViewModel, но при загрузке данных я получаю ошибку
System.NotSupportedException: 'Указанный элемент типа' DataTableTypeDisplay 'не поддерживается в LINQ to Entities.Поддерживаются только инициализаторы, элементы сущностей и свойства навигации сущностей.
Я попытался добавить параметры игнорирования в конфигурацию для DataTableTypeDisplay
без изменений.
Работает нормально, еслиЯ удаляю это свойство, но тогда в таблице отображается только значение 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>();
}
Enum
public enum DataTableType
{
None = 0,
Type1 = 1,
Type2 = 2,
Type3 = 3,
}