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();

我也试过:


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


HUWWW
浏览 109回答 1
1回答

慕雪6442864

在 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);这让我认为(正如上面的评论中已经解释的那样)问题在于缺少新的 {ids}所以它可能只是var resultTwo = Connection.Query<MyObject>(query, new { ids} )?.ToList();
打开App,查看更多内容
随时随地看视频慕课网APP