Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# EF linq在哪里跳过/执行?_C#_Linq_Entity Framework - Fatal编程技术网

C# EF linq在哪里跳过/执行?

C# EF linq在哪里跳过/执行?,c#,linq,entity-framework,C#,Linq,Entity Framework,我有: OrderBy/Skip/Take返回一个IEnumerable。我担心的是,所有结果都将被返回,然后Linq将被用于只获取其中的一部分 我的问题是:OrderBy/Skip和Take是否包含在已发布的SQL查询中,以便只返回请求的全部结果的子集 发出的SQL查询中是否包含OrderBy/Skip和Take,以便只返回请求的总结果子集 是的,所有这些方法都是受支持的,它们将被转换为SQL。正如您所看到的,整个列表都是,每个方法都有重载,这些重载采用IQueryable 发出的SQL查询中

我有:

OrderBy/Skip/Take返回一个IEnumerable。我担心的是,所有结果都将被返回,然后Linq将被用于只获取其中的一部分

我的问题是:OrderBy/Skip和Take是否包含在已发布的SQL查询中,以便只返回请求的全部结果的子集

发出的SQL查询中是否包含OrderBy/Skip和Take,以便只返回请求的总结果子集

是的,所有这些方法都是受支持的,它们将被转换为SQL。正如您所看到的,整个列表都是,每个方法都有重载,这些重载采用IQueryable

发出的SQL查询中是否包含OrderBy/Skip和Take,以便只返回请求的总结果子集


是的,所有这些方法都受支持,并将被转换为SQL。正如您所看到的,整个列表都是采用IQueryable的每个方法的重载。

是的,它们被转换为SQL并直接针对DB执行。

是的,它们被转换为SQL并直接针对DB执行

OrderBy/Skip/Take返回一个IEnumerable

OrderBy,不仅仅是IOrderedEnumerable。我也是。C编译器非常聪明,只要您不强迫它这样做,它就更喜欢这些重载而不是返回IEnumerable的重载。只要不过早将其转换为IEnumerable,该操作将在数据库中执行

OrderBy/Skip/Take返回一个IEnumerable


OrderBy,不仅仅是IOrderedEnumerable。我也是。C编译器非常聪明,只要您不强迫它这样做,它就更喜欢这些重载而不是返回IEnumerable的重载。只要不过早将其转换为IEnumerable,该操作将在数据库中执行。

在监视SQL Server时是否尝试过该操作。IQueryable被编译成sql。所以,是的,只返回总结果的请求子集作为一个次要主题,我建议您阅读关于延迟执行的内容。我会读一些书,我很快就需要这个答案。非常感谢大家的回答和评论。选择哪一个作为答案?。您在监视SQL Server时尝试过吗。IQueryable被编译成sql。所以,是的,只返回总结果的请求子集作为一个次要主题,我建议您阅读关于延迟执行的内容。我会读一些书,我很快就需要这个答案。非常感谢大家的回答和评论。选择哪一个作为答案。。?。
IQueryable<Entity> query = (from e in Context.Set<TEntity>() select e);
IEnumerable<TEntity> result = query.OrderBy(x=>x.Property).Skip(10).Take(10);