我有以下LINQ语句,我发现它没有像我想的那样快速运行.还有其他变种运行得更快,还是有另一种方法可以更快地完成?
var products = session.Products.Where(x => x.Supplier.Address.State == "HI").ToList();
Run Code Online (Sandbox Code Playgroud)
您没有声明的是,这是针对特定LINQ提供商的博客文章.让我们把它放在上下文中:
现在查询它:
using(var session=new Session()){
var products = session.Products.Where(x => x.Supplier.Address.State == "HI")
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
......它的工作原理:) 这就是ObjectDatabase世界中所谓的"深度图"查询,通常会给性能带来麻烦.说实话,我还没有把这个查询挂在多个记录上 - 但从我读过的内容来看,这对于Mongo来说是正常的,并且它支持得很好.
这不是ToList
"通常会为性能带来麻烦" 的调用- 事实上,您正在对象数据库中进行"深度图查询".是的,然后你将所有结果提取到内存中,但这是商店的本质,这是引起关注的原因.