//Quando manipulamos CLASSES ou TABELAS se relacionam
        //Podemos trazer esses dados de 2 formas
        //Temos 1 classe ou tabela principal que chama classes ou tabelas
        //Relacionadas (secundarias)
        //Quando trazemos tudo de uma vez chamamos de EAGER LOADING
        //Carregamento Antecipado

        //Quando trazemos is dados secundario somente quando precisarmos, se chama
        //LAZY Loading
        //Carregamento tardio
        public IEnumerable <AmigoDTO> ListarAmigosEagerLoading()
        {
            var amigos = new List <AmigoDTO>();

            for (int i = 1; i <= 10; i++)
            {
                var amigo = new AmigoDTO();
                amigo.Nome              = $"Erick {i}";
                amigo.Email             = $"erick {i}@hotmail.com";
                amigo.CodigoSexo        = 1;
                amigo.CodigoEstadoCivil = 1;

                //EAGER LOADING
                //Como a classe principal 'e a de AMIGO ja nos
                //Antecipamos e trouxemos os dados das classes Relacionadas
                //  amigo.Sexo = new SexoDTO();
                amigo.Sexo.Codigo    = 1;
                amigo.Sexo.Descricao = "Feminino";

                //amigo.EstadoCivil = new EstadoCivilDTO();
                amigo.EstadoCivil.Codigo    = 1;
                amigo.EstadoCivil.Descricao = "Casado";

                amigos.Add(amigo);
            }
            return(amigos);
        }
        public IEnumerable <AmigoDTO> ListarAmigosLazyLoading()
        {
            //O padrao LazyLoading Martin Fowler (2010)
            //A ideia 'e fazer os dados de tabelas ou classes relacionadas
            //Somente quando forem necessarios, nunca trazer tudo de uma vez
            //Cenario classico para aplicar o LAZY LOADING 'e atrav'es de Propriedades
            //somente com GET
            var amigos = new List <AmigoDTO>();

            for (int i = 1; i <= 10; i++)
            {
                //No LL s'o trazemos os dados da classe da tabela
                //Principal
                var amigo = new AmigoDTO();
                amigo.Nome              = $"Erick {i}";
                amigo.Email             = $"erick {i}@hotmail.com";
                amigo.CodigoSexo        = 1;
                amigo.CodigoEstadoCivil = 1;

                amigos.Add(amigo);
            }
            return(amigos);
        }