【问题标题】:Mapping of entity and model in Asp.net MVC 4Asp.net MVC 4 中实体和模型的映射
【发布时间】:2013-06-03 04:27:05
【问题描述】:

我正在使用 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 context) +382

我是 Asp.net MVC 的新手。请帮我。在此先感谢:)

【问题讨论】:

  • 您的异常表示Package 和PackageModel 之间没有适当的Automapper 映射。也许你应该在你的代码中写这个地图?
  • 我已添加映射器代码,请检查
  • 它正在映射到数据库。但例外是关于从您的实体到您的包模型的自动映射器映射。尝试使用 Google Automapper 获取更多信息。

标签: asp.net-mvc asp.net-mvc-4 automapper nopcommerce


【解决方案1】:

您需要配置代码。它会是这样的:

Mapper.CreateMap<Package , PackageModel>();

如果你在两个方向上映射,可能会反过来。

【讨论】:

  • 您是否也进行了反向映射,并且您确定在尝试进行映射之前调用了这部分代码?
  • 是的..,我也试过你的方法..它解决了这个问题,现在没有发生异常,但是当模型映射到实体时,映射后数据丢失
猜你喜欢
  • 1970-01-01
  • 2016-12-23
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 2017-12-30
  • 2012-05-25
  • 2014-12-29
相关资源
最近更新 更多