我无法弄清楚如何在我的查询中使用List<Guid>
作为参数。在不同的情况下,我有一段时间遇到麻烦了,但这是现在的问题。我试图通过删除测试用户创建的所有内容来进行清理。这是代码:
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 });
}
我也尝试使用@idList
作为参数,但也没有用。这是它给出的错误:
Npgsql.PostgresException: Npgsql.PostgresException: 42601: syntax error at or near "$1"
显然,查询无法识别列表并将其粘贴到参数中,但我无法弄清楚原因。
答案 0 :(得分:2)
您无法在PostgreSQL中使用IN
列表。要检查列表中是否存在元素,请使用以下语法:WHERE "CreatedById" = ANY (:idList)
。