Bom.
Sou novato em desenvolvimento.
Uma coisa que me deixou Angustiado quando estava desenvolvendo meu software para o estágio da faculdade foi a manipulação de dados envolvendo a ligação de classes com os dados do banco de dados.
Ex: faz um select, e depois tinha que ficar lendo datareader ou datatable para carregar objetos texts, fazendo conversões.
Foi então que procurei e encontrei ORM, Entity Framework, NHibernate e Dapper.
Só que lendo e estudando sobre vi que não é indicado para ferramentas que visão alto desempenho devido ao alto grau de abstração que é envolvido neles, além da curva de aprendizado.
Por isso resolvei começar a criar uma classe que poderia carregar os resultados de um select em objetos sem ter que programar muito (tempo).
Então crie o DataLink (…)
Basicamente ele funciona da seguinte forma, a pessoa faz um select, com query mesmo, este deve ser ligado a um datatable, que é repassado como parâmetro juntamente com o objeto para retorno e pronto dados “linkados”.
if (!String.IsNullOrWhiteSpace(txtID.Text))
{
DataTable dt = new DataTable();
MySqlCommand cmd = new MySqlCommand();
cmd = new MySqlCommand("select * from cidade where id = @id", conn);
cmd.Parameters.AddWithValue("@id", txtID.Text);
MySqlDataAdapter adpt = new MySqlDataAdapter(cmd);
adpt.Fill(dt);
Data d = new Data(); // classe do DataLink
Object [] cidade = d.GetData(ref dt, new Cidade()); // retorno
if(cidade != null)
{
Cidade c = (Cidade)cidade[0]; //conversão
txtNome.Text = c.nome;
txtUf.Text = c.uf;
}
}
No caso se fosse um select de clientes ? só criar um classe de cliente, sendo que os atributos tem que ter o mesmo nome das colunas da tabela do banco, trocar no código Cidade por Cliente.
class Cidade
{
public int id { get; set; }
public string nome { get; set;}
public string uf { get; set; }
}
Então … Será que um projeto desse é realmente utíl ?, não desenvolvo profissionalmente, mas acredito que pode agilizar muito o processo de escrita de software.