2010-03-12 98 views
4

我正在使用MSDN动态LINQ到SQL包。它允许使用字符串进行查询。动态查询立即执行?

但是,返回的类型是IQueryable而不是IQueryable<T>。我没有ToList()方法。

我该如何立即执行而不用手动列举IQueryable

我的目标是将数据绑定到linqtosql数据源上的选择事件,并抛出datacontext处置异常。我可以将查询设置为gridview上的数据源。

任何帮助非常感谢!谢谢。

动态linq to sql是Visual Studio自带的示例中的一个。

回答

2

IQueryableIQueryable<T>之间的区别在于第二种是键入,而第一种不是。要将IQueryable转换为IQueryable<T>您可以使用Cast<T>()方法。

IQueryable myQueryable = ...; 
IQueryable<MyType> myTypedQueryable = myQueryable.Cast<myQueryable>(); 
IList<MyType> myList = myTypedQueryable.ToList(); 

明显的myQyeryable内容必须被强制转换成MyType。要选择某种类型的实例,可以在执行转换之前使用TypeOf<T>()方法。