将SQL查询结果转换为LINQPad中的C#Dictionary

时间:2017-06-13 11:45:21

标签: c# sql-server linq linqpad

假设我在SQL表中有以下数据:

ID  A1  A2
0   1   abc
1   2   def
2   1   ghi

我有一个问题:

SELECT ID, A2 FROM MyTable WHERE A1 = 1

这将返回两个记录,ID 0和2。

我想在LINQpad中运行此查询,并将结果作为Dictionary集合返回。显然,密钥将是ID,值将是A2的值。

LINQpad通过右上角的“连接”下拉列表连接到数据库。我处于“C#程序”模式,我认为这会导致问题,因为我尝试过的每个例子似乎都处于语句或表达模式。我想让它在程序模式下工作,所以我可以从其他程序运行它。

1 个答案:

答案 0 :(得分:4)

首先,您需要在LINQPad下拉列表中添加与数据库的连接。如果您的表名为MyTable,则可以访问名为MyTables的LINQPad对象。现在,以下代码(在LINQPad C#Program Mode中)应该返回一个Dictionary对象:

void Main()
{

    var result = MyTables
                .Where(mc => mc.A1 == 1)
                .ToDictionary(m => m.ID.ToString(), 
                              m => m.A2.ToString());
    result.Dump();
}
  

回应James Curran,你不需要修改.ToString()   下面:

void Main()
{

    var result = MyTables
                .Where(mc => mc.A1 == 1)
                .ToDictionary(m => m.ID, 
                              m => m.A2);
    result.Dump();
}