Adicionar índice personalizado para entidade que herda de usuário, que herda de IdentityUser no EF

votos
0

Eu estou fazendo ASP.NET Projeto MVC com a identidade do usuário. Minha classe de usuário agora herda IdentityUser:

  [Table(Users)]
public class User : IdentityUser
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Patronymic { get; set; } // Отчество
    public string Avatar { get; set; }
    public DateTime? DateOfBirth { get; set; } // Дата рождения
    public DateTime? RegisterDate { get; set; } // Actualy it is a dateTime :)
    public bool? Sex { get; set; }

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<User> 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;
    }
}

Então eu fiz a classe Doctor, que herda a partir dele:

  [Table(Doctors)]
public class Doctor : User
{
    [Key]
    public int DoctorId { get; set; }
    public string CurriculumVitae { get; set; }
}

Como você pode ver, eu adicionei o DoctorId campo de índice personalizado. Mas UserManager não pode criar entidades Então a questão é como posso adicionar O índice personalizado INT ID?

Publicado 08/11/2018 em 06:49
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

Eu encontrei a solução! Para forçar a entidade a criar a chave precisamos adicionar o seguinte:

[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DoctorId { get; set; }

em vez disso

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

Mas esta não é a melhor solução .. Theremore não herdam DE USUÁRIO classe para as classes wich perceber papéis!

Respondeu 19/11/2018 em 15:57
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more