none
Desenvolvimento em N Camadas ADO.NET RRS feed

  • Pergunta

  • Pessoal tenho a Seguinte Duvida.

    1º Tenho uma Camada de Acesso a Dados.

    2º Tenho uma Camada de Transferencia de Objeto, com duas Classes uma com as propriedades de uma classe Usuário e outra com uma lista Generica que retorna uma coleção da classe usuário.

    • Classe Usuário.cs
    public class Usuario
        {
            public int IdUsuario { get; set; }
            public string Nome { get; set; }

            public DateTime DataNasc{get; set;}

         }

    _ _ _ _ _ _ _ _ _ _ _  _ _ _ _ _ _ _ _ _  _ _ _ _ _ _ _ _ _ _ _ _  _ _ _ _ _ _ _ _ _  _ 

    Classe que retorna uma lista Generica /coleção

    • Classe UsuarioColecao.cs
       public class UsuarioColecao : List<Usuario>
        {

        }

    _ _ _ _ _ _ _ _ _ _ _  _ _ _ _ _ _ _ _ _  _ _ _ _ _ _ _ _ _ _ _ _  _ _ _ _ _ _ _ _ _  _ 

    • 3º Tenho uma Camada de Negocios que retorna essa Coleção;

     public UsuarioColecao ConsultaPorNome(string NomeUsuario)
            {
                UsuarioColecao usuarioColecao = new UsuarioColecao();
                acessoBDSqlServer.LimparParametros();
                acessoBDSqlServer.AdicionarParametros("@Nome", NomeUsuario);
                DataTable dataTable = acessoBDSqlServer.ExecultaConsultaSQL(CommandType.StoredProcedure, "uspConsultaUsuariosPorNome");

                foreach (DataRow item in dataTable.Rows)
                {
                    Usuario usuario = new Usuario();

                    usuario.IdUsuario = Convert.ToInt32(item["IdUsuario"]);
                    usuario.Nome = Convert.ToString(item["Nome"]);
                    usuario.DataNascimento = Convert.ToDateTime(item["DataNascimento"]);
                 

                    usuarioColecao.Add(usuario);
                }
                return usuarioColecao;
            }

    _ _ _ _  _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    4º Camada de apresentação 

                NegociosDBUsuarios negociosDBUsuarios = new NegociosDBUsuarios();

                UsuarioColecao usuarioColecao = new UsuarioColecao();

                usuarioColecao = negociosDBUsuarios.ConsultaPorNome(TextBoxPesquisar.Text);
                GridViewUsuarios.DataSource = usuarioColecao;
                GridViewUsuarios.DataBind();

    A minha Duvida é o seguinte para Retorna a Consulta de um Usuário basta eu retorna a Lista Generica da classe UsuarioColecao.cs, retornando essa coleção de usuário eu consigo listar em um grid, mas e se eu quiser retorna um relacionamento de N:N de uma tabela de Usuário com uma outra tabela de Vendas, como eu faço para retorna esses dados? 

    continuo usando Lista Genericas para retorna essa Coleção?


    domingo, 27 de outubro de 2013 23:25

Todas as Respostas

  • Ou você cria uma classe com todos os seus dados ou seja com todos os campos que você irá utilizar, ou ao fazer o Join você terá duas coleções em uma  única variável tipo isso :

    Class a 
    {  int id { get; set;}
    }
    Class b 
    { 
    
     int id {get;set;}
    }
    
    var classea = new List<a>();
    
    var classeb = new List<b>();
    
    var select = classea.Join(classeb,
                         a => a,
                         b => b,
                         (a,b) new { a,b})
                         .Where(i => a.id =! null);
    
    foreach(var itens in select)
    {
    
    //aqui esta sua duas listas;
    }
                        

    segunda-feira, 28 de outubro de 2013 00:18
  • Daniel, Bom Dia.

    Então eu pensei em trabalhar assim como eu listei abaixo, mas não é a mesma coisa que vc fez no seu exemplo.

    Será que vc pode me ajudar com essas duas classes que eu te passei, e se você conseguir fazer isso poderia me mostrar como seria o relacionamento de 1:N e de N:N? Cara eu estou começando em uma empresa e queria montar uma estrutura legal de classe e relacionamento.

    1º Produto.cs

    public class Produto
    {

       
    public intIdProduto{ get;set; }
       
    public stringDescricaoProduto { get;set; }
       
    public decimal ValorProduto{ get; set;}
    }

    2º Fornecedor.cs


    public class Fornecedor
    {
       
    public Fornecedor()
       
    {

            produto=new Produto();
       
    }

       
    public intIdFornecedor { get;set; }
       
    public stringNomeFornecedor { get;set; }
       
    public Produto produto{get; set;}

    }



    segunda-feira, 28 de outubro de 2013 11:14
  • Não entendi muito bem seria isso :

    public Fornecedor(List<Produto> listaProdutos)
    {
    
    }
    
    public Fornecedor(Produto produto)
    {
    
    }

    segunda-feira, 28 de outubro de 2013 15:57