2009-01-22 83 views
5

有沒有辦法使用百分比執行top(Take)linq查詢? T-SQL應該是:TOP PERCENT的LINQ版本

SELECT TOP 20 PERCENT ... 

但LINQ似乎只想要一個int。

看來,我將不得不做一個計數,然後採取。有什麼建議麼?

回答

4

實質上,您將不得不執行兩次查詢。您必須執行一次才能計數,然後再次計算出百分比(因爲您將傳遞相應於等於20%的計數的數字)。

+0

這就是我正在做的,我不喜歡它:/應該有一個方法轉換爲本機SQL。 – 2009-01-22 19:02:31

+1

@Basallo:不幸的是,我不相信。 您可以以某種方式擴展IQueryable實現,以支持您自己的Top的覆蓋,然後將其轉換爲適當的SQL Server命令。 – casperOne 2009-01-22 19:05:54

1

我不認爲LINQ to SQL內置任何東西。你可以用存儲過程來完成。我不喜歡那麼多,除非你碰巧使用了一個程序,但它可能比用兩個單獨的查詢做得更好。