我发现了一段代码,它从数据库中获取了数千个实体(用于填充缓存)。这些实体有许多连接到它的子对象,这使得查询变成了相当大的东西。
可以做.Include("ChildObject")
和.Include("ChildObject.ChildObjectOfChildObject")
++但是,此代码的作者选择在自己的查询中加载所有这些子对象,然后匹配ID,并填写将这些数据转换为包装器(换句话说,它们最终会像具有您将获得的所有数据的对象一样.Include())
这是否有性能提升?我认为完成的操作是相同的,唯一的区别是连接是在for循环中的C#代码中完成的(当循环遍历所有父实体时)。我一直认为数据库是最快的,并且在进行数据操作时最优化,而且.NET中的部分数据操作会更慢......