再次提到這一點,我一直堅持在那裏我有我的視圖模型使用註釋的問題也如何獲得entityobject的數據註解視圖模型對象,而在視圖模型
例如我entityobject是用戶在設計師類(Teamwork.Designer.cs)
假設我有寫在了User_Name和USER_PASSWORD數據註解
[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Int32 User_Pk
{
get
{
return _User_Pk;
}
set
{
if (_User_Pk != value)
{
OnUser_PkChanging(value);
ReportPropertyChanging("User_Pk");
_User_Pk = StructuralObject.SetValidValue(value);
ReportPropertyChanged("User_Pk");
OnUser_PkChanged();
}
}
}
private global::System.Int32 _User_Pk;
partial void OnUser_PkChanging(global::System.Int32 value);
partial void OnUser_PkChanged();
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
[Required(ErrorMessage="Please enter your name")]
[StringLength(20,ErrorMessage="Name cannot exceed 20 characters")]
[RegularExpression(@"^([a-zA-Z0-9 \.\&\'\-]+)$", ErrorMessage = "Invalid name")]
public global::System.String User_Name
{
get
{
return _User_Name;
}
set
{
OnUser_NameChanging(value);
ReportPropertyChanging("User_Name");
_User_Name = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged("User_Name");
OnUser_NameChanged();
}
}
private global::System.String _User_Name;
partial void OnUser_NameChanging(global::System.String value);
partial void OnUser_NameChanged();
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
[Email(ErrorMessage="Invalid email address")]
[Required(ErrorMessage="Please enter email address")]
public global::System.String User_Mail_Id
{
get
{
return _User_Mail_Id;
}
set
{
OnUser_Mail_IdChanging(value);
ReportPropertyChanging("User_Mail_Id");
_User_Mail_Id = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged("User_Mail_Id");
OnUser_Mail_IdChanged();
}
}
private global::System.String _User_Mail_Id;
partial void OnUser_Mail_IdChanging(global::System.String value);
partial void OnUser_Mail_IdChanged();
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
[Required(ErrorMessage="Please enter password")]
[StringLength(20,ErrorMessage="Password cannot exceed 20 characters")]
[RegularExpression(@"^([a-zA-Z0-9 \.\&\'\-]+)$", ErrorMessage = "Invalid password")]
public global::System.String User_Password
{
get
{
return _User_Password;
}
set
{
OnUser_PasswordChanging(value);
ReportPropertyChanging("User_Password");
_User_Password = StructuralObject.SetValidValue(value, false);
ReportPropertyChanged("User_Password");
OnUser_PasswordChanged();
}
}
private global::System.String _User_Password;
partial void OnUser_PasswordChanging(global::System.String value);
partial void OnUser_PasswordChanged();
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.DateTime User_Creation_Date
{
get
{
return _User_Creation_Date;
}
set
{
OnUser_Creation_DateChanging(value);
ReportPropertyChanging("User_Creation_Date");
_User_Creation_Date = StructuralObject.SetValidValue(value);
ReportPropertyChanged("User_Creation_Date");
OnUser_Creation_DateChanged();
}
}
private global::System.DateTime _User_Creation_Date;
partial void OnUser_Creation_DateChanging(global::System.DateTime value);
partial void OnUser_Creation_DateChanged();
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
[DataMemberAttribute()]
public global::System.Boolean Is_Active
{
get
{
return _Is_Active;
}
set
{
OnIs_ActiveChanging(value);
ReportPropertyChanging("Is_Active");
_Is_Active = StructuralObject.SetValidValue(value);
ReportPropertyChanged("Is_Active");
OnIs_ActiveChanged();
}
}
private global::System.Boolean _Is_Active;
partial void OnIs_ActiveChanging(global::System.Boolean value);
partial void OnIs_ActiveChanged();
#endregion
現在我已經創建了一個視圖模型用於上述用戶:EntityObject 與名稱註冊isterUserViewModel.cs如下
public class RegisterUserViewModel
{
public int UserId{get;set;}
public string UserName { get; set; }
public string UserEmail { get; set; }
public string UserPassword { get; set;}
}
該實體對象在名爲Teamwork.Data 單獨的文件夾中創建和文件夾中創建Teamwork.BusinessLogic
現在在我的控制器動作的視圖模型我稱的方法,其在Teamwork.Businesslogic定義如下
'
public ViewResult Register(string invite)
{
SignUpAndLogin signLog = new SignUpAndLogin();
var model = signLog.GetRegisterModel();
return View(model);
}
SignUpLogin.cs是類第在包含了我所有的業務中,有GetRegisterModel如下
public RegisterUserViewModel GetRegisterModel()
{
AutoMapper.Mapper.CreateMap<User, RegisterUserViewModel>();
User user = new User();
RegisterUserViewModel model = AutoMapper.Mapper.Map<User, RegisterUserViewModel>(user);
return model;
}'
我制訂RegisterviewModel對象與用戶對象和IM將其返回到調用上面的方法操作的Teamwork.BusinessLogic文件夾相關的操作。(請任何人都可以說這映射的正確方法是什麼?)
我的問題是我必須在RegisterViewModel(即使映射?)像下面再提註釋的註釋工作
public class RegisterUserViewModel
{
public int UserId{get;set;}
[Required(ErrorMessage="Enter the Name")]
public string UserName { get; set; }
public string UserEmail { get; set; }
public string UserPassword { get; set;}
}
任何人可以請求我說我的地圖是正確與否,以及避免重複數據註解視圖模型
這個問題很長,可能是愚蠢的..但這是我一直面臨的問題現在2天... 任何人都可以幫助
謝謝拉米你給了我一個有價值的信息....你已經給出了一個清晰的想法如何使用Automapper ..也很多 – bhargav 2011-12-29 14:31:25