Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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
Subsonic 为什么GetPaged()执行两个数据库调用?_Subsonic_Subsonic3 - Fatal编程技术网

Subsonic 为什么GetPaged()执行两个数据库调用?

Subsonic 为什么GetPaged()执行两个数据库调用?,subsonic,subsonic3,Subsonic,Subsonic3,我对亚音速(即评估3.0.0.3)有点陌生,在GetPaged(int pageIndex,int pageSize)中遇到了一个奇怪的行为。当我执行该方法时,它执行两个SQL调用。你知道为什么吗 细节 假设我有一个200行的“文化”表。在我的代码中,我做了一些类似于 var sonicCollection = from c in RTE.Culture.GetPaged(1, 25) select c; 现在,我希望它执行一个查询,返回cultu

我对亚音速(即评估3.0.0.3)有点陌生,在GetPaged(int pageIndex,int pageSize)中遇到了一个奇怪的行为。当我执行该方法时,它执行两个SQL调用。你知道为什么吗

细节 假设我有一个200行的“文化”表。在我的代码中,我做了一些类似于

var sonicCollection = from c in RTE.Culture.GetPaged(1, 25)
                       select c;
现在,我希望它执行一个查询,返回cultures表中的前25个条目。当我观看SQL profiler时,我看到两个查询由运行

首先这个--

那么这个--

选择*
从(选择上方的行号()(
按文化顺序(ASC)作为行,
[dbo].[Cultures].[cultureCode],[dbo].[Cultures].[cultureName]
来自[dbo]。[文化]
)
作为PagedResults

其中Row>=1和Row您只想使用RTE.Culture.GetPaged()-它为您运行分页查询。

这是代码中的一个错误。代码实际上查询每个记录,然后在每个记录上迭代计数。我在github回购协议中创建了一个问题:


您可以很容易地下载源代码、修复问题并重新编译。我已经这样做了,并且解决了我的问题。

对不起,我的疏忽。。。我将代码改为:var colPaged=RTE.Culture.GetPaged(1,20);我仍然看到两个查询行为。
SELECT [dbo].[Cultures].[cultureCode], [dbo].[Cultures].[cultureName]
FROM [dbo].[Cultures]
SELECT *
FROM     (SELECT ROW_NUMBER() OVER (
    ORDER BY cultureID ASC) AS Row, 
    [dbo].[Cultures].[cultureCode], [dbo].[Cultures].[cultureName]
 FROM [dbo].[Cultures]
)
AS PagedResults
WHERE  Row >= 1 AND Row <= 25