投射动态精巧的查询

Nil*_*ers 4 c# dapper

我试图将动态查询从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
        }
Run Code Online (Sandbox Code Playgroud)

但是演员总是返回null.任何线索?

ros*_*dia 8

您需要将各行转换为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"]
    }
Run Code Online (Sandbox Code Playgroud)

  • 你可以简化为`foreach(IDictionary <string,object> row in ...)` (8认同)