IQIeryable来自运行时类型,可以应用Where和Select

时间:2014-08-20 07:55:04

标签: c# linq devexpress iqueryable dynamictype

我必须从运行时类型生成IQueryable以将其提供给组件。此组件动态加载数据,因此IEnumerable不是一个选项。

Type genericType = typeof(XPQuery<>).MakeGenericType(myRuntimeType);
IQueryable dataSource = (IQueryable)Activator.CreateInstance(genericType, 
                                                    new[] { NewOrmSession() });

这很好用,但我也不能同时应用WhereSelect,因为它不使用泛型。

任何其他方法都是可能的,因为我只需要从接受运行时类型的方法获取IQueryable和Where和Select作为输出,并且在某种程度上,使用结构化的where子句。

1 个答案:

答案 0 :(得分:0)

我已经使用我发布的代码进行了管理。刚刚添加了Dynamic Linq库并得到.Where和.Select with string参数和params对象数组 然后我可以做一些事情:
dataSource.Select("new( FirstName as Name, LastName , Salary)");
还有 dataSource.Where("Salary > @0", 1000)

OrderBy也在运作。
所以它解决了。