Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Usuários Microsoft em Models

O MVC já cria toda aquela estrutura de Usuários e eu quero usá-la então segui um processo definido em um post que achei e acrescentei na classe ApplicationUser alguns campos que precisava, como Nome, Matricula.

Alterei a View Register e funciona bem o registro de novos usuários.

E ele virtualmente, não sei nem onde, altera a tabela AspNetUsers no BD. Não aparece essa modificação na Migration. Ao fazer o update database já alterou e acrescentou os novos campos.

Agora o meu problema é quando quero, por exemplo, criar um DropDownList de usuários em algum Model que p.ex. registra o Usuário que é responsável por um setor.

Qual classe uso no model?

Usei :

public int ApplicationUserId { get; set; }
public virtual ApplicationUser Usuario {get; set; }

E o Scaffolding cria Controllers usando db.ApplicationUser para carregar listas de usuários e isso não existe, pois em algum lugar o próprio sistema define que o dbSet dessa tabela é db.Users.

1 resposta
solução!

Olá, Jaqueline!

A tabela AspNetUsers e a classe ApplicationUser estão intimamente ligadas, por isso ocorreu a atualização das colunas novas quando você criou novas propriedades em ApplicationUser.

Pelo que entendi você está tentando estender a classe ApplicationUser. Você pode atingir esse objetivo utilizando uma relação 1:1 no modelo, acrescentando outra entidade (tabela) com uma chave estrangeira:

public class Aluno
    {
        [Key]
        public int UserId { get; set; }

        public string Nome { get; set; }

        public string Matricula { get; set; }

        [ForeignKey("UserId")]
        public virtual ApplicationUser User { get; set; }
    }

Aí você poderia usar essa classe no Scaffolding.

Será que funciona?

Boa sorte e bons estudos!