gpt4 book ai didi

c# - 如何正确使用列表作为 Npgsql 和 Dapper 的参数

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:51 30 4
gpt4 key购买 nike

我不知道如何使用 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"

显然,查询无法识别列表并将其粘贴到参数中,但我不明白为什么。

最佳答案

您不能在 PostgreSQL 中将 IN 与列表一起使用。要检查列表中是否存在某个元素,请使用以下语法:WHERE "CreatedById"= ANY (:idList)

关于c# - 如何正确使用列表作为 Npgsql 和 Dapper 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45869258/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com