Performance 如何获取IQueryable和ToList的sql语句?

Performance 如何获取IQueryable和ToList的sql语句?,performance,c#-4.0,entity-framework-4,iqueryable,ilist,Performance,C# 4.0,Entity Framework 4,Iqueryable,Ilist,我想知道如何获得IQueryable和Tolist的sql语句 我想比较一下这种情况: List<MyTable> lstresult01 = myContext.Mytable.Where(t=>t.ID == 1).ToList(); IQUeryable query = myContext.Mytable; query = query.Where(t=>t.ID == 1); List<MyTable> lstResult02 = query.ToLi

我想知道如何获得IQueryable和Tolist的sql语句

我想比较一下这种情况:

List<MyTable> lstresult01 = myContext.Mytable.Where(t=>t.ID == 1).ToList();

IQUeryable query = myContext.Mytable;
query = query.Where(t=>t.ID == 1);
List<MyTable> lstResult02 = query.ToList<MyTable>();
List lstreult01=myContext.Mytable.Where(t=>t.ID==1.ToList();
IQUeryable query=myContext.Mytable;
query=query.Where(t=>t.ID==1);
List lstreult02=query.ToList();
第二个更快吗?我读到IQueryable更好,因为条件是在sql设置中发送的,而IList不这样做


谢谢。

这两个应该是一样的,但要测量以确定。在
ToList()
之后无法获取SQL,只能在之前获取。看来这是最好的情况?我的意思是如果我利用了IQueryable?不,ToList()否定了IQueryable的延迟执行。要获取生成的sql查询,可以使用sql探查器/EF探查器来监视生成的查询。IQueryable不会将查询发送到数据库,除非您从数据中选择了某些内容或调用ToList()类方法。