2016-05-06 2 views
-1

У меня есть кусок кода, где мне нужно сопоставить user.email (string datatype) с userProfile.Email.email datamember.Автоматическое сопоставление между различными типами данных

user.UserEmails.Add(new UserEmail { Email = email });

Как я могу сделать это отображение?

+1

Отправьте свой код. Вы что-то пробовали? – Andrew

ответ

1

Допустим, у вас есть свой User класс:

class User 
{ 
    public string Email { get; set; } 
} 

и класс UserProfile и класс Email:

class UserProfile 
{ 
    public Email Email { get; set; } 
} 

class Email 
{ 
    public string Email { get; set; } 
} 

Затем вы можете сделать что-то следующее:

// create mapping 
Mapper.CreateMap<User, UserProfile>() 
     .ForMember(up => up.Email, opt => opt.MapFrom(u => new UserEmail { Email = u.Email })); 

// map the entity 
var userProfile = Mapper.Map<UserProfile>(user); 

Надеюсь, это поможет.

-1

Вот основная логика отображения из объекта в модель. Надеюсь, что это помогает

Mapper.CreateMap<SourceDataType, DestinationDataType>(); 
var YourEntityData = GetMyData();//this method will return data of type "SourceDataType" 
DestinationDataType modelObj= 
       Mapper.Map<SourceDataType, DestinationDataType>(YourEntityData); 
+0

C# позволяет явно специфицировать тип для переменной, поэтому вместо 'var YourEntityData = GetMyData(); // этот метод будет возвращать данные типа« SourceDataType », вы можете просто сказать« SourceDataType YourEntityData = GetMyData(); ' – stuartd

+0

Yup Спасибо ... Я знаю этого друга, но я не знаю, будет ли это влиять на производительность, если я использую 'var' ??? –

Смежные вопросы