我必须从运行时类型生成IQueryable
以将其提供给组件。此组件动态加载数据,因此IEnumerable
不是一个选项。
Type genericType = typeof(XPQuery<>).MakeGenericType(myRuntimeType);
IQueryable dataSource = (IQueryable)Activator.CreateInstance(genericType,
new[] { NewOrmSession() });
这很好用,但我也不能同时应用Where
和Select
,因为它不使用泛型。
任何其他方法都是可能的,因为我只需要从接受运行时类型的方法获取IQueryable
和Where和Select作为输出,并且在某种程度上,使用结构化的where子句。
答案 0 :(得分:0)
我已经使用我发布的代码进行了管理。刚刚添加了Dynamic Linq库并得到.Where和.Select with string参数和params对象数组
然后我可以做一些事情:
dataSource.Select("new( FirstName as Name, LastName , Salary)");
还有
dataSource.Where("Salary > @0", 1000)
OrderBy也在运作。
所以它解决了。