如何在Dapper中插入SQL文字作为查询参数

本文关键字:文字 查询 参数 SQL 插入 Dapper | 更新日期: 2023-09-27 17:58:52

我想插入SQL语句的一部分作为参数,而不是串联以使其整洁:

connection.Query(@"
    SELECT @Fields
    FROM Table
    WHERE ID = @Id
    ", new { Fields = "A, B", Id = 1});

我尝试将参数字符串包装在一个自定义类中,并使用Dapper 映射该类

public class SqlString
{
    public readonly string Value;
    public SqlString(string sql)
    {
        Value = sql;
    }
    public override string ToString()
    {
        return Value;
    }
}
...
Dapper.SqlMapper.AddTypeMap(typeof(SqlString), System.Data.DbType.Object);

但无济于事。

如何在Dapper中插入SQL文字作为查询参数

不能在t-SQL中参数化字段名。

在将SQL字符串传递到Connection.Query()方法之前,必须使用动态字段名生成动态SQL。