在 LINQPad 中将 SQL 查询结果转换为 C# 字典
Convert SQL query result to C# Dictionary in LINQPad
假设我在 SQL table 中有以下数据:
ID A1 A2
0 1 abc
1 2 def
2 1 ghi
我有一个问题:
SELECT ID, A2 FROM MyTable WHERE A1 = 1
这将 return 两条记录,ID 0 和 2。
我想 运行 在 LINQpad 中进行此查询,并将结果 return 作为字典集合。显然key是ID,value是A2的值。
LINQpad 通过右上角的 "Connection" 下拉菜单连接到数据库。我处于 "C# Program" 模式,我认为这是导致问题的原因,因为我尝试过的每个示例似乎都处于语句或表达式模式。不过,我想让它在程序模式下工作,这样我就可以从其他程序中 运行 这个。
首先,您需要在 LINQPad 下拉列表中添加到数据库的连接。如果您的 table 名为 MyTable,这将使您能够访问名为 MyTables 的 LINQPad 对象。现在下面的代码(在 LINQPad C# 程序模式下)应该 return 一个字典对象:
void Main()
{
var result = MyTables
.Where(mc => mc.A1 == 1)
.ToDictionary(m => m.ID.ToString(),
m => m.A2.ToString());
result.Dump();
}
Responding to James Curran, you don't need the .ToString() amended
below:
void Main()
{
var result = MyTables
.Where(mc => mc.A1 == 1)
.ToDictionary(m => m.ID,
m => m.A2);
result.Dump();
}
假设我在 SQL table 中有以下数据:
ID A1 A2
0 1 abc
1 2 def
2 1 ghi
我有一个问题:
SELECT ID, A2 FROM MyTable WHERE A1 = 1
这将 return 两条记录,ID 0 和 2。
我想 运行 在 LINQpad 中进行此查询,并将结果 return 作为字典集合。显然key是ID,value是A2的值。
LINQpad 通过右上角的 "Connection" 下拉菜单连接到数据库。我处于 "C# Program" 模式,我认为这是导致问题的原因,因为我尝试过的每个示例似乎都处于语句或表达式模式。不过,我想让它在程序模式下工作,这样我就可以从其他程序中 运行 这个。
首先,您需要在 LINQPad 下拉列表中添加到数据库的连接。如果您的 table 名为 MyTable,这将使您能够访问名为 MyTables 的 LINQPad 对象。现在下面的代码(在 LINQPad C# 程序模式下)应该 return 一个字典对象:
void Main()
{
var result = MyTables
.Where(mc => mc.A1 == 1)
.ToDictionary(m => m.ID.ToString(),
m => m.A2.ToString());
result.Dump();
}
Responding to James Curran, you don't need the .ToString() amended below:
void Main()
{
var result = MyTables
.Where(mc => mc.A1 == 1)
.ToDictionary(m => m.ID,
m => m.A2);
result.Dump();
}