0

Я хочу обновить таблицу AspNetUsers и добавить пользовательские свойства. Я создал новый класс под названием UserModel.Развернуть AspNetUsers, добавив дополнительную модель - сначала код

namespace theNotes.Models 
{ 
public class UserModel 
{ 
    [Required] 
    [Display(Name = "Education Level")] 
    public string Grade { get; set; } 

    public System.DateTime CreatedDate { get; set; } 
    public bool IsActive { get; set; } 
    public string IPAddress { get; set; } 

    public Nullable<int> TotalFilesDownloaded { get; set; } 
    public Nullable<int> FilesDownloadedToday { get; set; } 
    public Nullable<decimal> Money { get; set; } 
} 
} 

Когда я запускаю команду Add-Migration UserInfo в ПМ класс производится с методами up и down пустуют. Почему он не генерирует информацию этого класса?

EDIT: Я использую интернет-приложение asp.net mvc, и то, что я хочу сделать, это добавить эти столбцы в таблицу AspNetUsers, которая автоматически создается.

+0

ли вы добавить ссылку на ваш DbContext? –

+0

Где я могу добавить? – User456789

+0

Где вы добавляли этот класс? в папке «Модель»? Если да, можете ли вы опубликовать полный код своего класса? –

ответ

1

Если вы используете идентификатор Asp.net, то вы должны добавить новые свойства в класс ApplicationUser или аналогичный, который наследуется от IdentityUser.

+0

Вы всегда можете создать отдельную модель и создать связь с моделью «ApplicationUser». Добавление свойств не является единственным вариантом. –

+0

Вы правы, однако расширение класса «из коробки» кажется самым быстрым, а также самым простым решением. –

+0

Я согласен с этим. Кроме того, это не растяжимо. –

0

Немногие элементы отсутствуют в вашем коде:

  • Вы должны унаследовать сюда DBContext добавить это в ваш код, где ваш UserModel класс:

    public class UserModelContext : DbContext { public DbSet<UserModel> UserModels{ get; set; } }

  • Вам нужно пробег enable-migrations команда для нового Контекст UserModelContext

    • После выполнения команды вы получите сообщение об ошибке

EntityType 'UserModel' не имеет ключа определен. Определите ключ для этого EntityType.

так что вам нужно переделать таблицу и добавить ключ.

  • Вы должны ссылаться на внешний ключ для ссылки на пользовательскую таблицу
0

Вам нужно определить свой UserModel класс как это:

[Table("AspNetUsers")] 
public class UserModel : IdentityUser 
{ 
    [Required] 
    [Display(Name = "Education Level")] 
    public string Grade { get; set; } 

    public System.DateTime CreatedDate { get; set; } 
    public bool IsActive { get; set; } 
    public string IPAddress { get; set; } 

    public Nullable<int> TotalFilesDownloaded { get; set; } 
    public Nullable<int> FilesDownloadedToday { get; set; } 
    public Nullable<decimal> Money { get; set; } 
} 
Смежные вопросы