AutoMapper与域模型

时间:2013-07-08 05:28:22

标签: automapper

我是AutoMapper的新手

我有以下域模型。

public class Contact
{
    public string University { get; set; }

    public string GraduationYear { get; set; }
}

我不想更改域模型,并且想为GraduationYear属性添加额外的属性。

我在mvc 4项目中创建了属性类

[System.AttributeUsage(System.AttributeTargets.Property)]
public class Mapping : System.Attribute
{
    public string Name { get; set; }
}

在名为'ContactMapping'Created

的类上使用上面的属性
public class ContactMapping
{
    [Telephony.Helper.Attribute.Mapping(Name = "Graduate")]
    public string GraduationYear { get; set; }
}

我从域服务获取联系对象,该对象没有自定义属性“Mapping”。

var contact = new ContactService().Get(contactPredicate).Single();

现在我在做Auto Mapper

AutoMapper.Mapper.CreateMap<Telephony.Helper.Mapping.ContactMapping, Aurora.CustomersMvc.Domain.Contact>();

    var test = AutoMapper.Mapper.Map<Aurora.CustomersMvc.Domain.Contact>(contact);
    var contactwithCustomAttr = contact.GetType().GetProperties().Where(p => ((Telephony.Helper.Attribute.Mapping[])p.GetCustomAttributes(typeof(Telephony.Helper.Attribute.Mapping), false))
                .Any(attr => attr.ToString() == "Graduate"));

我正在与contactCustomAttr.Count()联系。我希望返回GraduationYear属性,因为mapper应该应用我的自定义属性。

1 个答案:

答案 0 :(得分:0)

试试这个:我认为你没有正确映射

AutoMapper.Mapper.CreateMap<Aurora.CustomersMvc.Domain.Contact, Telephony.Helper.Mapping.ContactMapping>();

var test = AutoMapper.Mapper.Map<Aurora.CustomersMvc.Domain.Contact, Telephony.Helper.Mapping.ContactMapping>(contact);
var contactwithCustomAttr = test.GetType().GetProperties().FirstOrDefault(p => ((Telephony.Helper.Attribute.Mapping[])p.GetCustomAttributes(typeof(Telephony.Helper.Attribute.Mapping), false))
            .Any(attr => attr.Name == "Graduate"));
相关问题