【发布时间】:2020-10-15 09:44:22
【问题描述】:
我有一个 SQL 选择语句,它在一秒钟内运行,并返回 50k 条记录,从叶节点表匹配到四个表之外的树的顶部。
我没有返回 1000 个可传输对象,而是希望返回结果 Id,然后选择我想要回调的对象。
如何使用 SQL 将此响应转换为 C#。这是生成的 SQL 响应的示例。
某种可遍历列表中的期望结果
t1id, t2id, t3id, t4id
24683, 40252, 40, 1519
24685, 40253, 40, 1519
这是一个示例查询,可以实现这一点。
SQL
SELECT t1.Id as t1id, t2.Id as t2id, t3.Id as t3id, t4.Id as t4id
FROM [dbo].[table1] t1
left join [dbo].[table2] t2 on t2.t1_id = t1.Id
left join [dbo].[table3] t3 on t3.Id = t2.t3_id
left join [dbo].[table4] t4 on t4.Id = t3.t4_id
代码
我正在处理的代码示例有诸如
之类的示例var re = Program.db.Database.SqlQuery<List<string>>(sqlQuery).ToList();
【问题讨论】:
-
你的研究揭示了什么?
-
进入C#作为什么,一个数组,DataTable,LINQ查询?
-
我已尝试将 SQl 传递给此,但无法得到明确的响应 db.Database.SqlQuery
>(sqlQuery) -
任何类型的可遍历数据结构都可以。
-
我做了研究,但没有帮助我得到答案。我的所有研究都在已知 EF 对象上使用 SQL 找到了简单的结果。仅仅做一个原始查询并将其映射回来并不常见。