2016-04-25 9 views
0

私はコードの最初の移行を使用してMVC 5でWebサイトを開発しています。私はユーザーのデータを更新するために、既定のIDでカスタム属性を追加するが、移行と更新データベースも追加しましたが、結果は同じですが、私はAspNetUsersテーブルを更新できませんでした。私のコードはapplicationUserの です。私はさらに3つのプロパティを追加しました。アイデンティティユーザーの更新方法

public class ApplicationUser : IdentityUser 
{ 
    public string Name { get; set; } 
    public string MobileNo { get; set; } 
    public string Address { get; set; } 

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager) 
    { 


     // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType 
     var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 
     // Add custom user claims here 
     return userIdentity; 
    } 

} 

はその後、私はRegisterViewModel

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

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

    [Required] 
    [StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)] 
    [DataType(DataType.Password)] 
    [Display(Name = "Password")] 
    public string Password { get; set; } 

    [DataType(DataType.Password)] 
    [Display(Name = "Confirm password")] 
    [Compare("Password", ErrorMessage = "The password and confirmation password do not match.")] 
    public string ConfirmPassword { get; set; } 

    [Required] 
    [Display(Name = "Mobile Number")] 
    public string MobileNo { get; set; } 

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

を更新して登録ビューが

<h4>Create a new account.</h4> 
<hr /> 
@Html.ValidationSummary("", new { @class = "text-danger" }) 

<div class="form-group"> 
    @Html.LabelFor(m => m.Name, new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     @Html.TextBoxFor(m => m.Name, new { @class = "form-control" }) 
    </div> 
</div> 

<div class="form-group"> 
    @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     @Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) 
    </div> 
</div> 
<div class="form-group"> 
    @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     @Html.PasswordFor(m => m.Password, new { @class = "form-control" }) 
    </div> 
</div> 
<div class="form-group"> 
    @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" }) 
    </div> 
</div> 

<div class="form-group"> 
    @Html.LabelFor(m => m.MobileNo, new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     @Html.TextBoxFor(m => m.MobileNo, new { @class = "form-control" }) 
    </div> 
</div> 
<div class="form-group"> 
    @Html.LabelFor(m => m.Address, new { @class = "col-md-2 control-label" }) 
    <div class="col-md-10"> 
     @Html.TextBoxFor(m => m.Address, new { @class = "form-control" }) 
    </div> 
</div> 
<div class="form-group"> 
    <div class="col-md-offset-2 col-md-10"> 
     <input type="submit" class="btn btn-default" value="Register" /> 
    </div> 
</div> 

あるコンソールマネージャに移行し、更新するデータベースを追加した後、私はAspNetUsersテーブルの列を作成することができませんし、 -Verboseフラグを使用すると、エラーメッセージは でした "オブジェクト" AspNetUsers "が存在しないか、許可されていないため見つかりませんイオン。 問題を解決する方法を理解できません。その問題に対処する方法を教えてください。ありがとう

答えて

1

データベースに実際に接続できるかどうかを確認すると、データベース接続が失敗する可能性があります。私は私のコードでこの接続文字列を使用しています:

<connectionStrings> <add name="CONNECTIONSTRING_NAME" connectionString="Data Source(local); Initial Catalog=YOUR_DATABASE_NAME;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>

関連する問題