在我的项目中,我有2个班级。首先,客户作为域模型:
public partial class kunden
{
[Required(ErrorMessage = "Geben Sie bitte ihren Vornamen an.")]
[MaxLength(200, ErrorMessage = "Bitte verwenden Sie weniger als 200 Zeichen.")]
[MinLength(2, ErrorMessage = "Geben Sie bitte einen Vornamen ein der mehr als 2 Zeichen hat.")]
[Display(Name = "Vorname", Description = "Ihr Vorname")]
public string kunden_vorname { get; set; }
[Required(ErrorMessage = "Geben Sie bitte ihren Nachnamen an.")]
[MaxLength(200, ErrorMessage = "Bitte verwenden Sie weniger als 200 Zeichen.")]
[MinLength(2, ErrorMessage = "Geben Sie bitte einen Nachnamen ein der mehr als 2 Zeichen hat.")]
[Display(Name = "Nachname", Description = "Ihr Nachname")]
public string kunden_nachname { get; set; }
[DataType(DataType.Password)]
[Required(ErrorMessage = "Geben Sie bitte ihr Passwort ein.")]
[MinLength(7, ErrorMessage = "Bitte wählen Sie ein Passwort mit mindestens 7 Zeichen.")]
[MaxLength(200, ErrorMessage = "Bitte verwenden Sie weniger als 200 Zeichen.")]
[Display(Name = "Passwort", Description = "Ihr Passwort, Sie können es zur eindeutigen Identifikation ihres Accounts verwenden.")]
public string kunden_passwort { get; set; }
}
第二个类是我的viewmodel:
public partial class KundenViewModel
{
public string kunden_vorname { get; set; }
public string kunden_nachname { get; set; }
public string kunden_passwort { get; set; }
}
有没有办法映射/复制DataAnnotations?像这样:
Mapper.MapDataAnnotations<KundenViewModel, kunden>();
映射的类看起来如此:
public class KundenViewModel
{
[Required(ErrorMessage = "Geben Sie bitte ihren Vornamen an.")]
[MaxLength(200, ErrorMessage = "Bitte verwenden Sie weniger als 200 Zeichen.")]
[MinLength(2, ErrorMessage = "Geben Sie bitte einen Vornamen ein der mehr als 2 Zeichen hat.")]
[Display(Name = "Vorname", Description = "Ihr Vorname")]
public string kunden_vorname { get; set; }
[Required(ErrorMessage = "Geben Sie bitte ihren Nachnamen an.")]
[MaxLength(200, ErrorMessage = "Bitte verwenden Sie weniger als 200 Zeichen.")]
[MinLength(2, ErrorMessage = "Geben Sie bitte einen Nachnamen ein der mehr als 2 Zeichen hat.")]
[Display(Name = "Nachname", Description = "Ihr Nachname")]
public string kunden_nachname { get; set; }
[DataType(DataType.Password)]
[Required(ErrorMessage = "Geben Sie bitte ihr Passwort ein.")]
[MinLength(7, ErrorMessage = "Bitte wählen Sie ein Passwort mit mindestens 7 Zeichen.")]
[MaxLength(200, ErrorMessage = "Bitte verwenden Sie weniger als 200 Zeichen.")]
[Display(Name = "Passwort", Description = "Ihr Passwort, Sie können es zur eindeutigen Identifikation ihres Accounts verwenden.")]
public string kunden_passwort { get; set; }
}
答案 0 :(得分:2)
这不起作用 - AutoMapper仅复制值。需要在每个类上定义DataAnnotations,因为它们定义了额外的行为。减少代码重复的最简单方法是创建一个包含“Kunden”数据的类,让你的viewmodel继承它,只添加你需要的额外字段。