2012-12-12 84 views
2

這就是我想要達到的目標:實體框架,隨機查詢分頁

  1. 我要查詢我的數據庫返回的實體列表
  2. 隨機化列表
  3. 商店物品的IDS收到以供將來查詢
  4. 在ID已存儲在列表中的同一張表上運行一個新查詢
  5. 按我已存儲的列表排序。

我已經設法實現了第1,2,3,4步,但第5步很困難。誰能幫我用像這樣的查詢:提前

SELECT * 
FROM table_name 
WHERE id IN (1,2,3,4....) 
ORDER BY (1,2,3,4....) 

感謝

回答

0

嘗試

SELECT table_name.* 
FROM crazy_sorted_table 
     LEFT JOIN 
     table_name ON crazy_sorted_table.ID=table_name.ID 
+0

非常感謝您對此的意見,我現在必須將此翻譯成linq以實現或lambda,但無論如何感謝。 – maaizle

0

我測試了正常的連接(相等加盟)應該做的伎倆,這裏是樣本方法:

/**crazyOrder filled 100 rows with random value from 1-250 in Id**/ 
CREATE TABLE [dbo].[crazyOrder] (
[Id] INT   NOT NULL, 
[Area] VARCHAR (50) NULL, 
PRIMARY KEY CLUSTERED ([Id] ASC) 
); 
/**Normal order is filled with value from 1-100 sequentially in id**/ 
CREATE TABLE [dbo].[normalOrder] (
[Id] INT   NOT NULL, 
[Name] VARCHAR (50) NULL, 
PRIMARY KEY CLUSTERED ([Id] ASC) 
); 

create table #tempOrder 
(id int) 
insert into #tempOrder 
Select top 10 Id 
    from crazyOrder 
    order by NewID() 
go 
Select n.* 
from normalOrder n 
    join #tempOrder t 
    on t.id = n.id 

我能夠以臨時表中相同的順序檢索行(我用一個數據生成器的值es)

+0

謝謝你,我發現了一個更簡單的方法來做到這一點。但我很欣賞這一點 – maaizle