我试图用小巧玲珑我们复杂的查询,以消除任何丢失的开销以前用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 });
}
}
}