Boa noite galera, não sei se posso perguntar aqui mais caso não possa por favor apaguem minha postagem...
Já sou programador e estou aproveitando o curso para desenvolver uma aplicação utilizando a tecnologia aplicada, porem estou com alguns problemas.
Eu tenho as 2 Classes abaixo
public class Usuario
{
public Usuario()
{
this.Grupos = new List<Grupo>();
this.Cursos = new List<Curso>();
this.Aulas = new List<AulaUsuario>();
}
//Key
public int UsuarioID { get; set; }
//Fields
public string Email { get; set; }
public string NomeCompleto { get; set; }
public DateTime DataDeCadastro { get; set; }
public bool Apagado { get; set; }
//Virtual Properties
public virtual ICollection<Grupo> Grupos { get; set; }
public virtual ICollection<Curso> Cursos { get; set; }
public virtual ICollection<AulaUsuario> Aulas { get; set; }
}
public enum EstadoCivil
{
Solteiro = 1,
Casado = 2,
Divorciado = 3
}
public enum Sexo
{
Masculino = 1,
Feminino = 2
}
E a Classe grupo:
public class Grupo
{
public Grupo()
{
this.Usuarios = new List<Usuario>();
}
//Key
public int GrupoID { get; set; }
//Fields
public string Descricao { get; set; }
public DateTime DataCadastro { get; set; }
public bool Apagado { get; set; }
//Virtual Properties
public virtual ICollection<Usuario> Usuarios { get; set; }
}
No mapeamento do EF6 na classe Usuario não tenho nenhuma Relationships, porem no GrupoMAP eu tenho:
public class GrupoMap : EntityTypeConfiguration<Grupo>
{
public GrupoMap()
{
// Primary Key
this.HasKey(t => t.GrupoID);
// Properties
// Table & Column Mappings
// Relationships
this.HasMany(t => t.Usuarios)
.WithMany(t => t.Grupos)
.Map(m =>
{
m.ToTable("Grupos_Usuarios");
m.MapLeftKey("GrupoID");
m.MapRightKey("UsuarioID");
});
}
}
O meu Json Retorna assim:
{
"UsuarioID": 1,
"Email": "usuario1@email.com.br",
"NomeCompleto": "Usuario 1",
"DataDeCadastro": "2018-03-26T00:40:08",
"Apagado": false,
"Grupos": [
{
"GrupoID": 1,
"Descricao": "Administrador",
"DataCadastro": "2018-03-26T00:44:32",
"Apagado": false,
"Usuarios": [
{
"UsuarioID": 2,
"Email": "usuario2@email.com.br",
"NomeCompleto": "Usuario 2",
"DataDeCadastro": "2018-04-03T13:54:30",
"Apagado": false
Oque acontece que quando eu faço uma busca de Usuario realizando o .include(p => p.Grupos) conforme abaixo:
public IList<Usuario> ListaDeUsuarios()
{
var dados = context.Usuarios
.Include(p => p.Grupos)
.ToList();
return dados;
}
recebo um loop infinito no json, era pra trazer Usuario Usuario.Grupos
mas ta trazendo tb Usuario.Grupos.Usuarios
alguem pode me ajudar?