Is there a way to access the columns in a Dapper FastExpando via string or index?

后端 未结 3 609
[愿得一人]
[愿得一人] 2020-12-29 04:36

I am pulling in a Dapper FastExpando object and want to be able to reference the column names dynamically at run time rather than at design/compile time. So I

相关标签:
3条回答
  • 2020-12-29 05:11

    Sure, it is actually way easier than that:

    var sql = "select 1 A, 'two' B";
    var row = (IDictionary<string, object>)connection.Query(sql).First();
    row["A"].IsEqualTo(1);
    row["B"].IsEqualTo("two");
    
    0 讨论(0)
  • 2020-12-29 05:11

    There a simple way to access fields direct below sample

    string strConexao = WebConfigurationManager.ConnectionStrings["connection"].ConnectionString;
    
    conexaoBD = new SqlConnection(strConexao);
    conexaoBD.Open();
    
    var result = conexaoBD.Query("Select Field1,Field2 from Table").First();
    
    //access field value result.Field1 
    //access field value result.Field2
    
    if (result.Field1 == "abc"){ dosomething}
    
    0 讨论(0)
  • 2020-12-29 05:37

    Regarding the portion of the title "or index?" - I needed to access results by index since the column names being returned changed sometimes, so you can use a variation of Sam Saffron's answer like this:

    var sql = "select 1, 'two'";
    var row = (IDictionary<string, object>)connection.Query(sql).First();
    row.Values.ElementAt(0).IsEqualTo(1);
    row.Values.ElementAt(1).IsEqualTo("two");
    
    0 讨论(0)
提交回复
热议问题