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?