动态转换 Dapper 查询

5

我正在尝试将一个动态查询从Dapper转换为IDictionary。

        const string sql = @"SELECT Name, Street FROM Contact";
        dynamic query = null;

        using (var cn = Connection)
        {
            query = cn.Query<dynamic>(sql);
        }

        var rows = query as IDictionary<string, object>;

        foreach (var row in rows)
        {
            // Getting values and objects
        }

但是这个cast总是返回null。有什么线索吗?
2个回答

11

你需要将单个行强制转换为 IDictionary<string, object>

    const string sql = @"SELECT Name, Street FROM Contact";
    IEnumerable<dynamic> results = null;

    using (var cn = Connection)
    {
        results = cn.Query<dynamic>(sql);
    }

    foreach (var row in results)
    {
         var fields = row as IDictionary<string, object>;
         // do something with fields["Name"] and fields["Street"]
    }

9
你可以简化为 foreach(IDictionary<string, object> row in ...) - Marc Gravell

0
使用 "Cast<>":
query.Cast<IDictionary<string, object>>()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接