MySQL 将多个参数绑定到单个查询

MySQL binding multiple parameters to a single query

我有一个 MySql 数据库,我正在使用 Dapper 从 .Net 应用程序连接到它。我有以下代码:

await connection.ExecuteAsync(
    "DELETE FROM my_data_table WHERE somedata IN (@data)", 
    new { data = datalist.Select(a => a.dataitem1).ToArray() },
    trans);

当我使用多个值执行此操作时,出现以下错误:

MySqlConnector.MySqlException: 'Operand should contain 1 column(s)'

我在 MySql / Dapper 中尝试做的事情是否可行,或者我是否必须针对要删除的每一行发出一个查询?

您的原始代码几乎没问题。您只需要删除参数周围的括号。 Dapper 会为您插入这些:

await connection.ExecuteAsync(
    "DELETE FROM my_data_table WHERE somedata IN @data", 
    new { data = datalist.Select(a => a.dataitem1).ToArray() },
    trans);