Neste artigo mostrar uma maneira da realizar uma relação um-para-muitos utilizando o Dapper com C#.
Abaixo temos nosso modelo de classe
public class Cliente
{
public int Id { get; set; }
public string Nome { get; set; }
public List<ClienteContato> _Contato { get; set; }
}
public class ClienteContato
{
public int IdContato { get; set; }
public int IdCliente { get; set; }
public int contato { get; set; }
}
E o método para buscar os dados com uma relação um-para-muitos:
public Cliente Get()
{
var lookup = new Dictionary<int, Cliente>();
var sql = 'SELECT c.*, n.Id AS ConId, n.* FROM cliente AS c ' +
'INNER JOIN cliente_contatos AS n ON n.IdCliente = c.Id ';
var res = await cn.QueryAsync<Cliente, ClienteContato, Cliente>(sql, (c, n) =>
{
Cliente cliente;
if (!lookup.TryGetValue(c.Id, out cliente))
{
lookup.Add(c.Id, cliente = c);
}
if (cliente._Contato == null)
cliente._Contato = new List<ClienteContato>();
cliente._Contato.Add(n);
return cliente;
}, splitOn: 'ConId'
);
var x = lookup.Values.ToList();
return null;
}
0 comentários:
Postar um comentário