2016-04-07 134 views
0

我一直在學習asp.net的MVC,而現在,我在着手處理使用實體框架,實體框架模型使用遠程

我有以下型號

[Table("User")] 
public partial class User 
{ 
    // [ConcurrencyCheck] 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 

    [Key] 
    public int Id { get; set; } 

    [Required] 
    [Display(Name = "User Name")] 
    [Remote("IsUserNameAvailable", "User", ErrorMessage = "User name already Exists.")] 
    public string UserName { get; set; } 

    [Required] 
    [DataType(DataType.Password)] 
    [StringLength(150, MinimumLength = 6)] 
    [Display(Name = "Password")] 
    public string Password { get; set; } 
    [Required] 
    public string FirstName { get; set; } 

    [Required] 
    public string Surname { get; set; } 

    [Required] 
    [DataType(DataType.EmailAddress)] 
    [Display(Name = "Email")] 
    [Remote("IsEmailAvailable", "User", ErrorMessage = "Email Address Already Exists.")] 
    public string Email { get; set; } 

} 

這一切當我註冊用戶時工作正常。但我的問題是,我試圖做這樣的事情進行登錄

[Table("User")] 
public partial class Login 
{ 
    // [ConcurrencyCheck] 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 

    [Key] 
    public int Id { get; set; } 

    [Required] 
    [Display(Name = "User Name")] 
    public string UserName { get; set; } 

    [Required] 
    [DataType(DataType.Password)] 
    [StringLength(150, MinimumLength = 6)] 
    [Display(Name = "Password")] 
    public string Password { get; set; } 


} 

我想其原因,這是使我可以使用,將不必使用,因爲我不會被檢查,如果遠程屬性模型用戶名存在

當我這樣做的錯誤說我不能爲同一個表使用單獨的實體。我試圖避免觸發登錄部分的遠程屬性。

有沒有人遇到過這個?

謝謝,

+0

您需要一個數據模型(其不應包括視圖特定屬性,如[遠程]'),然後使用視圖模型 - 請參閱[什麼是ViewModel在MVC?](http://stackoverflow.com/questions/11064316/what-is-viewmodel-in-mvc) –

回答

0

刪除訪問修飾符局部[表( 「用戶」)],[鍵] 屬性

+0

非常感謝爲答案,但如果我刪除表格,我的模型如何知道我的表格如何映射?而且我有一個ID作爲主鍵,那是什麼原因造成的呢? – Brian

+0

實際上,這將是一個模型類,用於在當時有人提交數據時顯示視圖上的數據,您將該數據從模型類轉換爲實體類,因此在模型類上您不必提及什麼是你的關鍵領域等 – rashfmnb