繁体   English   中英

如何使用字符串作为参数遍历 Dapper 动态查询结果?

[英]How do I loop through Dapper dynamic query results using strings as parameters?

所以我遇到了这段代码:

dynamic account = conn.Query<dynamic>(@"
                SELECT Name, Address, Country
                FROM Account
        WHERE Id = @Id", new { Id = Id }).FirstOrDefault();
Console.WriteLine(account.Name);
Console.WriteLine(account.Address);
Console.WriteLine(account.Country);

如何使用 Dapper ORM 返回动态类型 List<dynamic> )。

我想知道如何使用字符串作为参数来做同样的事情。 有点像这样:

dynamic account = conn.Query<dynamic>($@"
                SELECT {commaseperated(parameters)}
                FROM Account
        WHERE Id = @Id", new { Id = Id }).FirstOrDefault();
Console.WriteLine(account[parameters[0]]);
Console.WriteLine(account[parameters[1]]);

其中parameters的类型是string[]。 所有结果都是字符串类型,因此甚至可能不需要使用动态。

我假设你可以做这样的事情:

        string[] parameters = new string[] { "param1", "param2" };

        dynamic account = conn.Query<dynamic>($@"SELECT {String.Join(",", parameters)} FROM Account WHERE Id = @Id", new { Id }).FirstOrDefault();

        foreach (string s in parameters)
        {
            Console.WriteLine(account.GetType().GetProperty(s).GetValue(account, null));
        }

        Console.ReadLine();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM