Recientemente han comenzado a evaluar Dapper como un reemplazo potencial para EF, ya que no estaba demasiado contento con el SQL que se estaba generando y quería más control sobre él. Tengo una pregunta sobre el mapeo de un objeto complejo en mi modelo de dominio. Supongamos que tengo un objeto llamado Proveedor, el Proveedor puede contener varias propiedades de tipo IEnumerable a las que solo se debe acceder yendo a través del objeto proveedor principal (es decir, la raíz agregada). He visto publicaciones similares que explicaron utilizando el método de extensión QueryMultiple y un método de extensión de mapa, pero me preguntaba cómo si quisiera escribir un método que devuelva todo el gráfico de objetos ansiosamente cargado, si Dapper pudiera hacerlo de una sola vez o si era necesario hacerlo por partes. A modo de ejemplo, digamos que mi objeto parecía algo como lo siguiente:Dapper Objeto correcta/balasto Mapeo
public AggregateRoot
{
public int Id {get;set;}
...//simple properties
public IEnumerable<Foo> Foos
public IEnumerable<Bar> Bars
public IEnumerable<FooBar> FooBars
public SomeOtherEntity Entity
...
}
¿Hay una manera sencilla de poblar todo el gráfico de objetos utilizando Dapper?
va a tener que construir algunas extensiones manuales para esto, no hay un método incorporado para el descubrimiento de gráficos y la generación automática de SQL –
Gracias por su respuesta Sam, ¿qué pasa con una solución que no es automática sino que usa un SQL ¿consulta? ¿Es eso posible? Además, ¿cómo se maneja esto en SO, si es que lo hace? ¿O se generan consultas separadas para manejar relaciones de este tipo y complejidad? – mreyeros
Buenas tardes Sam, solo otra pregunta rápida Me di cuenta de que en el método Query puedo pasar hasta 5 objetos usando una de las sobrecargas de métodos. ¿Se puede usar este método para generar lo que estoy tratando de hacer aquí, o estoy malinterpretando su uso? – mreyeros