Сопоставление сущности и модели в Asp.net MVC 4

Я сопоставляю следующую сущность и модель, используя NopCommerce 3.0.

Объект

public partial class Package : BaseEntity
    {
        public int ProductID { get; set; }
        public int Quantity { get; set; }
        public int PackageNumber { get; set; }
        public string Weight { get; set; }
        public int DisplayOrder { get; set; }
        public bool Published { get; set; }
    }

Модель

[Validator(typeof(PackageValidator))]
    public class PackageModel
    {
        [NopResourceDisplayName("Admin.Catalog.Packages.Fields.ProductID")]
        public int ProductID { get; set; }

        [NopResourceDisplayName("Admin.Catalog.Packages.Fields.Quantity")]
        public int Quantity { get; set; }

        [NopResourceDisplayName("Admin.Catalog.Packages.Fields.PackageNumber")]
        public int PackageNumber { get; set; }

        [NopResourceDisplayName("Admin.Catalog.Packages.Fields.Weight")]
        //[AllowHtml]
        public string Weight { get; set; }

        [NopResourceDisplayName("Admin.Catalog.Packages.Fields.DisplayOrder")]
        public int DisplayOrder { get; set; }

        [NopResourceDisplayName("Admin.Catalog.Packages.Fields.Published")]
        public bool Published { get; set; }
    }

Это мой класс Mapper

public partial class PackageMap : EntityTypeConfiguration<Package>
    {
        public PackageMap()
        {
            this.ToTable("Package");
            this.HasKey(m => m.Id);
            this.Property(m => m.ProductID);
            this.Property(m => m.Quantity);
            this.Property(m => m.PackageNumber);
            this.Property(m => m.Weight);
            this.Property(m => m.DisplayOrder);
            this.Property(m => m.Published);
        }
    }

Но я получаю следующее исключение

[AutoMapperMappingException: попытка сопоставить Nop.Core.Domain.Catalog.Package с Nop.Admin.Models.Catalog.PackageModel. Отсутствует конфигурация сопоставления типов или неподдерживаемое сопоставление. Возникло исключение типа «AutoMapper.AutoMapperMappingException».] AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(контекст ResolutionContext) +382

Я новичок в Asp.net MVC. Пожалуйста помогите. Заранее спасибо :)


person Jayant Varshney    schedule 03.06.2013    source источник
comment
В вашем исключении указано, что между Package и PackageModel нет надлежащей карты Automapper. Может быть, вы должны написать эту карту в своем коде?   -  person Kirill Bestemyanov    schedule 03.06.2013
comment
Я добавил код картографа, пожалуйста, проверьте   -  person Jayant Varshney    schedule 03.06.2013
comment
это сопоставление с базой данных. Но исключение касается карты автосопоставления из вашей сущности в вашу модель пакета. Попробуйте Google Automapper для получения дополнительной информации.   -  person Kirill Bestemyanov    schedule 03.06.2013


Ответы (1)


Вам нужен код конфигурации. Это будет что-то вроде:

Mapper.CreateMap<Package , PackageModel>();

и, возможно, наоборот, если вы наносите карту в обоих направлениях.

person Piotr Stapp    schedule 03.06.2013
comment
Вы также выполняли обратное сопоставление и уверены ли вы, что эта часть кода вызывается до того, как вы попытаетесь выполнить сопоставление? - person Piotr Stapp; 03.06.2013
comment
да .. ну, я также пробовал ваш метод .. он решает эту проблему, теперь исключений не возникает, но после сопоставления данные теряются, когда модель сопоставляется с сущностью - person Jayant Varshney; 03.06.2013