I have to generate IQueryable
from runtime type to feed it to a component. This component dynamically loads the data, so IEnumerable
is not an option.
Type genericType = typeof(XPQuery<>).MakeGenericType(myRuntimeType);
IQueryable dataSource = (IQueryable)Activator.CreateInstance(genericType,
new[] { NewOrmSession() });
This works just fine, but I can not apply nor Where
nor Select
because it is not using generic.
Any other approach is possible, since I only need to get IQueryable
with Where and Select as output from method that accepts runtime type and, in a way, structured where clause.
I have managed with that code that I posted. Just added Dynamic Linq library and got .Where and .Select with string parameter and params object array.
Then I can do something like:
dataSource.Select("new( FirstName as Name, LastName , Salary)");
and also
dataSource.Where("Salary > @0", 1000)
Also OrderBy is working as well.
So it is solved.