投射动态短小精悍的查询

Cast dynamic dapper query

我正在尝试将动态查询从 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
        }

但是强制转换总是return null。有什么线索吗?

您需要将各个行转换为 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"]
    }

使用"Cast<>":

query.Cast<IDictionary<string, object>>()