Estou fazendo um mini projeto de uma software de Ordem de Serviço desenvolvido em C#. Até aí tudo bem, banco de dados montados, procedures montadas, conexão com o banco, manipulação, etc… O problema é que estou acompanhando algumas vídeo aulas, e nelas o professor em questão cria uma classe de entidade (atributos e encapsulamento) e outra classe que herda a anterior, porém com a diferença de ser uma Collection.
Eu queria saber se há outra maneira de fazer isso, por exemplo, deixar somente uma classe de entidade responsável pela collection também.
Caso seja preciso, posso colocar algumas imagens para demonstrar…
Claro!!
No caso, eu tenho uma classe cliente, bem simples:
public class Cliente
{
public int IdCliente { get; set; }
public string Nome { get; set; }
public string Telefone { get; set; }
public string Empresa { get; set; }
}
E então tenho um método de consulta que retorna um dado do tipo ClienteColecao:
public ClienteColecao ConsultarNome(string nome)
{
try
{
ClienteColecao clienteColecao = new ClienteColecao();
acessoSqlServer.LimparParametros();
acessoSqlServer.AdicionarParametros("@nome", nome);
DataTable dtCliente = acessoSqlServer.ConsultaDados(CommandType.StoredProcedure, "ClienteConsultar");
//Percorrer o DataTable e transforma a informação em coleção de cliente
foreach (DataRow drCliente in dtCliente.Rows)
{
Cliente cliente = new Cliente();
cliente.IdCliente = Convert.ToInt32(drCliente["id_cliente"]);
cliente.Nome = Convert.ToString(drCliente["nome"]);
cliente.Telefone = Convert.ToString(drCliente["telefone"]);
cliente.Empresa = Convert.ToString(drCliente["empresa"]);
clienteColecao.Add(cliente);
}
return clienteColecao;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
Seguindo a vídeo-aula em questão, eu teria que criar uma outra classe assim:
public class ClienteColecao : List<Cliente>
{
}
Queria encontrar uma maneira mais simplificada de fazer isso, sem que haja a necessidade de criar uma outra classe apenas para implementar uma lista nela. Eu já tentei resolver declarando um Lis clienteColecao = new List() direto no método, porém preciso do retorno…