quarta-feira, 16 de fevereiro de 2022

Relação um para muitos [Dapper][c#]

 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;
        }

COMENTE

& Compartilhe

0 comentários:

Postar um comentário

 

Copyright © 2015 Projeto Programação

Distributed By My Blogger Themes | Designed by Templateism