在设置AutoMapper配置时,我在应用程序启动时遇到问题。它在创建业务对象到数据对象的映射时抛出异常。这个问题似乎来自于数据注释的使用。值得一提的是,从数据对象到业务对象的映射工作得很好。
我得到的异常是CustomAttributeException:
未找到指定的"Order"属性。
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来处理列顺序数据注释?
Order
不能为负数。既然答案至少需要30个字符,让我添加MSDN的文档:
获取或设置属性映射到的列的从零开始的顺序。