假设我在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#程序”模式,我认为这会导致问题,因为我尝试过的每个例子似乎都处于语句或表达模式。我想让它在程序模式下工作,所以我可以从其他程序运行它。
答案 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();
}