Inquiridor
Desenvolvimento em N Camadas ADO.NET

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?
- Editado Amilton JB Costa domingo, 27 de outubro de 2013 23:26
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; }
-
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;}
}
- Editado Amilton JB Costa segunda-feira, 28 de outubro de 2013 11:16
-