2016-04-25 4 views
0

Я разрабатываю веб-сайт в MVC 5, используя первую миграцию кода. Я хочу добавить пользовательские атрибуты в идентификатор по умолчанию для обновления данных пользователей, но мне не удалось обновить таблицу AspNetUsers, хотя я добавил также базу данных миграции и обновления, но результат тот же. мой код в applicationUser У меня есть еще три свойства.Как обновить пользователя Identity?

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>