2009-01-22 84 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内置任何东西。你可以用存储过程来完成。我不喜欢那么多,除非你碰巧使用了一个程序,但它可能比用两个单独的查询做得更好。