Database 如何在Dapper查询中传递动态参数中的多个条件,就像我们传递in运算符一样

Database 如何在Dapper查询中传递动态参数中的多个条件,就像我们传递in运算符一样,database,postgresql,performance,dapper,dynamicparameters,Database,Postgresql,Performance,Dapper,Dynamicparameters,我想在查询我的PostgreSQL数据库时传递多个实体代码。我收到以下代码错误: 我希望查询的工作方式如下所示: SELECT * FROM public.test WHERE entity_code IN('value1', 'value2'); 下面是我的代码,它在我传递单个值时起作用: string query = "SELECT * FROM public.test WHERE entity_code = @Entity_Code";

我想在查询我的PostgreSQL数据库时传递多个实体代码。我收到以下代码错误: 我希望查询的工作方式如下所示:

        SELECT * FROM public.test WHERE entity_code IN('value1', 'value2');
下面是我的代码,它在我传递单个值时起作用:

        string query = "SELECT * FROM public.test WHERE entity_code = @Entity_Code";

        Dictionary<string, object> dictionary = new Dictionary<string, object>();
        dictionary.Add("@Entity_Code", "value1");

        var connection = _postgreSqlContext.Database.GetDbConnection();
        var results = connection.Query<Test>(query, new DynamicParameters(dictionary));
string query=“SELECT*FROM public.test其中entity\u code=@entity\u code”;
字典=新字典();
添加(“@Entity_Code”,“value1”);
var connection=_postgreSqlContext.Database.GetDbConnection();
var results=connection.Query(查询,新的动态参数(字典));
下面是针对同一参数添加多个值时不起作用的代码:

    string query = "SELECT * FROM public.test WHERE entity_code IN @Entity_Code";

    Dictionary<string, object> dictionary = new Dictionary<string, object>();
    dictionary.Add("@Entity_Code", new string[]{ "value1", "value2" });

    var connection = _postgreSqlContext.Database.GetDbConnection();
    var results = connection.Query<Test>(query, new DynamicParameters(dictionary));
string query=“SELECT*FROM public.test WHERE entity\u code IN@entity\u code”;
字典=新字典();
添加(“@Entity_Code”,新字符串[]{“value1”,“value2”});
var connection=_postgreSqlContext.Database.GetDbConnection();
var results=connection.Query(查询,新的动态参数(字典));

Postgres在-语法上有一点不同。您应该使用
ANY

string query=“SELECT*FROM public.test其中entity\u code=ANY(@entity\u code)”;
var dictionary=newdictionary();
添加(“@Entity_Code”,新字符串[]{“value1”,“value2”});
var connection=_postgreSqlContext.Database.GetDbConnection();
var results=connection.Query(查询,新的动态参数(字典));
请参见此问题的答案: