具有列顺序数据注释的自动映射器

时间:2014-04-14 16:48:01

标签: ef-code-first asp.net-mvc-5 data-annotations entity-framework-6 automapper-3

我在设置AutoMapper配置时遇到启动应用程序的问题。在为业务对象创建数据对象的映射时会抛出异常。该问题似乎来自数据注释的使用。值得一提的是,从数据对象到业务对象的映射工作正常。

我得到的异常是CustomAttributeException:

  

未找到指定的“订单”属性。

AutoMapper.config映射:

           Mapper.CreateMap<Note, NoteData>();

数据库对象定义为:

public class NoteData
{
    [Key]
    [Column(Order = -1)]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public virtual Guid Id { get; set; }

    [Timestamp]
    [ConcurrencyCheck]
    [Column(Order = 999)]
    public virtual byte[] Version { get; set; }

    [Required]
    public virtual DateTime Date { get; set; }

    [Required]
    [StringLength(500)]
    public virtual string Value { get; set; }

    public virtual bool IsDeleted { get; set; }

    [Required]
    public virtual UserData CreatedBy { get; set; }
}

我已经尝试忽略了对其进行了列顺序数据注释的字段,但这些字段没有解决问题。

当我注释掉订单数据注释时,Automapper没有问题。所以我的主要问题是有一种方法可以配置AutoMapper来处理Column Order数据注释吗?

1 个答案:

答案 0 :(得分:3)

Order不能是否定的。由于答案至少需要30个字符,我才能添加MSDN's doc

  

获取或设置属性映射到的列的从零开始的顺序。