Dapper - 不允许枚举参数序列

Boj*_*jan 5 c# dapper

Dapper 总是给我以下错误

System.InvalidOperationException:“此上下文中不允许使用可枚举的参数序列(数组、列表等)”

这是代码:

var ids = result.Result.Select(x => new { x.Id } );

 query = @"
        SELECT [A], [B], [C]
        FROM [MyTable]
        WHERE [C] IN @Ids
    ";

var resultTwo = Connection.Query<MyObject>(query, ids)?.ToList();
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

    var ids = result.Result.Select(x => x.Id );
Run Code Online (Sandbox Code Playgroud)

Ste*_*eve 5

我可以在 DynamicParameters 的帮助下运行像您这样的查询

var ids = Enumerable.Range(1, 100).ToList();
var parameters = new DynamicParameters();
parameters.Add("@ids", ids);
var recs = cnn.Query<City>("SELECT * FROM Cities Where IDCity in @ids", parameters);
Run Code Online (Sandbox Code Playgroud)

这让我认为(正如上面的评论中已经解释的那样)问题在于缺少新的 {ids}所以它可能只是

var resultTwo = Connection.Query<MyObject>(query, new { ids} )?.ToList();
Run Code Online (Sandbox Code Playgroud)