public T Execute <T>(Expression expression) { var actualType = typeof(T); var typename = actualType.Name; var listType = typeof(T).GetGenericType() ?? typeof(T); var visitor = new ODataExpressionVisitor(); visitor.Visit(expression); var query = visitor.GetQuery(); var results = Invoker.InvokeGenericMethod("Get", listType, query); if (results == null) { var type = typeof(List <>).MakeGenericType(listType); results = Activator.CreateInstance(type).As <List <T> >(); } if (typeof(T).IsCollection()) { return((T)results); } return(results.As <IEnumerable <T> >().FirstOrDefault()); }
public object Execute(Expression expression) { var visitor = new ODataExpressionVisitor(); visitor.Visit(expression); throw new NotImplementedException(); //return null;// Invoker.Get(visitor.GetQuery()); }