Dapper no agrega parámetros

dapper informix odbc sql

Pregunta

Intento usar Dapper para nuestras consultas complejas para eliminar cualquier sobrecarga perdida que existía anteriormente con NH.

Tengo la siguiente consulta (tenga en cuenta que esto se ha reducido considerablemente):

SELECT DISTINCT *
FROM  tasks t 
WHERE t.initials = @UserInits

Que se llama a través de nuestro repositorio como tal:

taskRepo.RawExec<TaskListItemDTO>(Query,new {UserInits = "SAS"})

Nuestra implementación de DapperExec consiste en lo siguiente:

public IEnumerable<T> RawExec<T>(string SQL, object param)
{
   return _session.Connection.Query<T>(SQL,param);
}

Pero Dapper no parece estar agregando los parámetros a la consulta y, como resultado, obtenemos errores de sintaxis.

En caso de que sea útil, nos estamos conectando a través de ODBC a Informix.

Gracias

Muestra del código de actualización:

Lo siento, tomó tanto tiempo, ¡estuve muy ocupado con el trabajo! A continuación se muestra un ejemplo para el servidor MS SQL (2008) que debería consultar los sys.all_objects (¿systables?) Con un valor de param de 1 o 0, pero en esta muestra, como ODBC no usa params con nombre, esto no funcionará .

using Dapper;
using DapperSQL;
using System.Collections.Generic;
using System.Data;
using System.Data.Odbc;

namespace DapperTests
{
    public class SQLEx
    {
        private OdbcConnection GetConnection()
        {
            var cnn = new OdbcConnection("DSN=ODBCSOURCE");
            cnn.Open();

            // wrap the connection with a profiling connection that tracks timings 
            return cnn;
        }

        public IEnumerable<object> DapperTest()
        {
            using (OdbcConnection conn = GetConnection())
            {
                return conn.Query("SELECT * FROM sys.all_objects where is_ms_shipped = ?", new { is_ms_shipped = 1 });
            }
        }
}

Respuesta popular

Sé que esta es una publicación anterior, solo use SP en lugar de consulta, por favor revise este enlace Dapper usando el procedimiento de la tienda ODBC. Ingrese parm , esto usando sybase odbc Sp, todos los odbc usan la misma técnica, ojalá funcione en Informix.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow