实体框架-使用简单查询时很慢

本文关键字:查询 简单 框架 实体 | 更新日期: 2023-09-27 18:09:19

我有一个简单的类在实体框架如下:

public class Merchandising
{
    public int Id { get; set; }
    public int Index { get; set; }    
    public int CategoryId { get; set; }
    public int? CardId { get; set; }  
}

在数据库中,这大约有1000行,直接查询用时不到1秒,但是当我执行这条语句时,它需要长达55秒的运行时间——我觉得这很奇怪。有人能解释一下吗?

var mm = a.Merchandisings.ToList();    
var m = mm.Where(f => f.CategoryId == catId).ToList();

catId是一个整数值,mm需要几分之一秒的时间来执行。mm返回大约1000行,m返回40行。m执行大约需要55秒。

我假设虽然CategoryIdCardId都链接到其他类(并且是大数据对象),但数据没有加载,因为没有延迟加载。

我真的不明白为什么m要花这么长时间来执行,我猜这与缺乏对股权框架的了解有关。有人能帮忙吗?

实体框架-使用简单查询时很慢

问题是,当您在第一行调用ToList方法时,您将把所有元素带入内存,因此尝试先过滤以避免加载不符合条件的不必要元素,然后调用ToList方法:

var m =  a.Merchandisings.Where(f => f.CategoryId == catId).ToList();