|
1
2
假设您的上下文由实体框架数据库或类似数据库支持,那么是的,您的第一个选项是执行多个SQL查询。当您开始执行
第二个表单应该只生成一个SQL查询;它将有大量冗余数据,但它将使用
我倾向于遵循的一条经验法则是,如果查询中的嵌套表少于4个,请尝试一次运行所有嵌套表。SQL和实体框架的查询解析器在生成该级别的联接时似乎都非常高效。 如果超出这一点,EF可以生成的SQL查询可能会变得混乱,并且当您在单个查询上有5个以上的联接时,SQL本身(假设MSSQL)的效率会降低。没有硬性限制,因为这取决于许多特定因素,但如果我发现自己需要非常深入的嵌套,我倾向于将其分解为较小的LINQ查询,并在客户端重新组合它们。
(附带说明:您可以很容易地用方法语法重现第二个查询,因为这就是编译器最终要做的事情,通过使用
|
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
|
Pavel Foltyn · 如何在C中生成逆字典# 1 年前 |
|
ewok · 基于种子和上一个值创建值列表 1 年前 |
|
|
Vasu V · 将foreach转换为select语句 1 年前 |
|
Modest · 使用命名空间和文本值序列化xElement 2 年前 |