Cómo escribir SQL complejo pero usar Predicado (a través de Dapper)

c# dapper dapper-extensions predicate sql

Pregunta

Estoy usando la biblioteca Dapper con el Sql Server . ¿Es posible usar Predicates con Complex Sql Queries para pasar los parámetros requeridos para filtrar el Complex Sql Queries en una Single Entity Class ?

SELECT * FROM Config.Country 
INNER JOIN Config.State 
ON Config.State.CountryId = Config.Country.CountryId

La clase de entidad podría tener la siguiente estructura.

public sealed class CountryStateReadDto
{
    //Country table
    public byte CountryId { get; set; }
    public string CountryName { get; set; }
    public string CountryCode { get; set; }
    public string ISOCode { get; set; }
    public string DailingCode { get; set; }
    public string WebCode { get; set; }
    public double Longitude { get; set; }
    public double Latitude { get; set; }

    //State table
    public short StateId { get; set; }
    public string StateName { get; set; }
}

Lo sé, hay un hermoso proyecto Dapper-Extension que hace el trabajo, pero solo para Single Table only .

Necesito escribir Complex Sql Queries preferiblemente usando Predicates . ¿Puede alguien ayudarme por favor proporcionando algunos consejos o incluso soluciones que serían muy útiles también?

Si Predicate no es una solución ideal, ¿hay algo más que pueda considerar o mejor que Predicate ?

Nota: El ejemplo Sql anterior es solo una consulta simple, tengo consultas complejas con> 10 uniones de tabla.

Respuesta aceptada

Sugeriría crear una vista

Create View StateDetails
SELECT * FROM Config.Country 
INNER JOIN Config.State 
ON Config.State.CountryId = Config.Country.CountryId

Una vez que tenga la configuración de sus vistas, trabajar con Dapper es mucho más fácil.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué