小巧玲珑不加参数(Dapper not adding parameters)

2019-09-22 15:38发布

我试图用小巧玲珑我们复杂的查询,以消除任何丢失的开销以前用NH存在。

我有以下查询(注意,这已大大缩小):

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

这是通过我们的资料库被称为这样:

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

我们DapperExec的实施包括如下:

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

但小巧玲珑似乎没有被添加参数的查询,并作为一个结果,我们得到的语法错误。

柜面有帮助,我们连接在ODBC到Informix。

谢谢

更新代码示例:

对不起了这么久,一直工作很忙! 下面是MS SQL(2008年),服务器应该简单查询sys.all_objects(SYSTABLES?)用1或0参数值的方式的样本 - 但在此示例中,因为ODBC不使用命名的参数,可以这是不行的。

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

Answer 1:

我知道这是旧的文章,只是使用的,而不是查询SP,请检查此链接使用ODBC存储过程的输入PARM小巧玲珑 ,这种使用Sybase ODBC SP,所有ODBC使用相同的技术,我想它的工作原理Informix中。



文章来源: Dapper not adding parameters