C# 如何正确使用列表作为Npgsql和Dapper的参数
我不知道如何使用C# 如何正确使用列表作为Npgsql和Dapper的参数,c#,dapper,npgsql,C#,Dapper,Npgsql,我不知道如何使用列表作为查询中的参数。在不同的情况下,我在这方面遇到了一些麻烦,但这里是当前的一个。我试图通过删除测试用户创建的所有内容来清理测试后的数据。代码如下: var idList = new List<Guid>() { SYS_ADMIN_GUID, OPERATOR_GUID, OPERATOR_ELECTRONICS_TECH_GUID, UNIT_MANAGER_GUID, AREA_MANAGER_GUID }; using (NpgsqlConnection
列表
作为查询中的参数。在不同的情况下,我在这方面遇到了一些麻烦,但这里是当前的一个。我试图通过删除测试用户创建的所有内容来清理测试后的数据。代码如下:
var idList = new List<Guid>() { SYS_ADMIN_GUID, OPERATOR_GUID, OPERATOR_ELECTRONICS_TECH_GUID, UNIT_MANAGER_GUID, AREA_MANAGER_GUID };
using (NpgsqlConnection c = new NpgsqlConnection(TestHelper.ConnectionString))
{
c.Open();
c.Execute(@"delete from ""BlueStakes"".""MarkRequestStatuses"" where ""CreatedById"" in :idList", new { idList });
}
var idList=new List(){SYS\u ADMIN\u GUID、OPERATOR\u GUID、OPERATOR\u ELECTRONICS\u TECH\u GUID、UNIT\u MANAGER\u GUID、AREA\u MANAGER\u GUID};
使用(NpgsqlConnection=newnpgsqlconnection(TestHelper.ConnectionString))
{
c、 Open();
c、 执行(@“从”“BlueStakes”“删除”“MarkRequestStatuses”“其中”“CreatedById”“位于:idList”“new{idList});
}
我还尝试使用@idList
作为参数,但也不起作用。这就是它给出的错误:
Npgsql.postgresception:Npgsql.postgresception:42601:在“$1”处或附近出现语法错误
显然,查询无法识别列表并将其插入参数中,但我无法找出原因。在PostgreSQL中,您不能将
中的与列表一起使用。要检查列表中是否存在元素,请使用以下语法:WHERE“CreatedById”=ANY(:idList)
以下是您为将来的参考资料所说的文档: