Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 拆分多个linq include()_C#_Entity Framework_Linq - Fatal编程技术网

C# 拆分多个linq include()

C# 拆分多个linq include(),c#,entity-framework,linq,C#,Entity Framework,Linq,如何拆分多个linq include方法进行优化查询: allRecords = context.Records.Where(r => r.versionId == version.id) .Include(x => x.colors) .Include(x => x.tags) .Include(x => x.ranks) .OrderBy(r => r.sortkey).ToList(); 如何通过将查询分解为更简单的查询来优化它? 这个请求太慢了。有必要提高

如何拆分多个linq include方法进行优化查询:

allRecords = context.Records.Where(r => r.versionId == version.id)
.Include(x => x.colors)
.Include(x => x.tags)
.Include(x => x.ranks)
.OrderBy(r => r.sortkey).ToList();

如何通过将查询分解为更简单的查询来优化它?
这个请求太慢了。有必要提高其性能。

您可以使用一些布尔标志将include设置为有条件的:

var query = context.Records.Where(r => r.versionId == version.id);

if (includeColors) query = query.Include(x => x.colors);
if (includeTags  ) query = query.Include(x => x.tags);
if (includeRanks ) query = query.Include(x => x.ranks);

allRecords = query.OrderBy(r => r.sortkey).ToList();

我不明白这个问题。如果不需要包含,请将其删除或注释掉。在这种情况下,拆分是什么意思?如何通过将查询分解为更简单的查询来优化查询?编辑并不能改善任何效果。如果要检索颜色,则要检索颜色。如果你不想要它们,就不要使用Include@MichaelKostiuchenko如何通过将查询分解为更简单的查询来优化它?没有任何解释。执行更多查询更为复杂,可能比检索所需内容的一个查询慢N倍。解释实际问题是什么