c # identity не может создать собственное свойство - PullRequest
0 голосов
/ 05 июля 2018

Это мой класс, полученный из IdentityUser:

    public class User : IdentityUser
{
    public string Extension { get; set; }
}

Это DbContext

public class SecurityDbContext : IdentityDbContext<User>
{
    private string connectionString;
    private string dbProvider;

    public SecurityDbContext(string connectionString, string dbProvider)
    {
        this.connectionString = connectionString;
        this.dbProvider = dbProvider;
    }

In Startup.cs

services.AddDbContext<SecurityDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("dataContext")));

        services.AddIdentity<User, IdentityRole>()
        .AddEntityFrameworkStores<SecurityDbContext>()
        .AddSignInManager<SignInManager<User>>()
        .AddDefaultTokenProviders();

Я добавил свойство Extension, удалил все таблицы и вызвал

EnsureDatabasesCreated();

Созданы все таблицы, но таблица AspNetUsers не содержит свойства Extension. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Оказывается, мне пришлось добавить это поле в мой RegisterRequest.

0 голосов
/ 05 июля 2018

Вы также должны сделать свой контекст наследуемым от IdentityDbContext<TUser>, где TUser - это пользовательский тип пользователя (User в предоставленном вами коде), который также наследует от IdentityUser, например:

public class ApplicationDbContext : IdentityDbContext<User>
{
     public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
     {
     }
}

Это веб-приложение Netcore? Если это так, убедитесь, что вы также зарегистрировали Identity в ServiceProvider и указали свой пользовательский класс в методе ConfigureServices:

 public void ConfigureServices(IServiceCollection services)
 {
     ...
     services.AddIdentity<User, IdentityRole>()
         .AddEntityFrameworkStores<ApplicationDbContext>()
         .AddSignInManager<SignInManager<User>>()
         .AddUserManager<UserManager<User>>();
     ...
 }

указание вашего пользовательского User класса и пользовательского Role класса, если необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...