2011-09-01 34 views
1

我想重新使用一个linq-to-sql函数,我每次都会将它传递给另一个字段进行分组。重用组LINQ函数

例如:

groupby(fieldX); 
groupby(fieldY); 

public void groupby(??? fieldName) 
{ 
    return from rows in db....... group by fieldname 
} 

,这是一个伪

的感谢!

回答

2

如果我正确理解你的问题,你试图重新创建LINQ Enumerable.GroupBy方法本身。

您可以从而达到您想要的结果,而不需要编写一个全新的方法,这样做:

var group1 = someEnumerable.GroupBy(o => o.fieldX); 
var group2 = someEnuemrable.GroupBy(o => o.fieldY); 
+0

我希望它其发送到SQL ...查询本身内。我不希望我的应用程序计算这个 – Himberjack

+0

你用什么来访问数据库?这个实体框架,LINQ to SQL,还是其他一些技术?无论采用哪种技术,如果它将查询以“IQueryable ”的形式返回,GroupBy方法仍然可以在“IQueryable ”上工作,并将组推迟到数据库。 –

+0

@Himberjack - 如果您正在使用Linq-To-SQL,只要'GroupBy'位于DataContext上,它就会被发送到数据库。 – vcsjones

2

结帐this后。也许你会需要混合代码一点点,但你会发现GroupBy(string fieldName)

那里介绍动态创建的Lambda表达式