동적 Linq를 사용하고 where 절이 작동합니다. 이제 orderby 절을 추가하려고하지만 동적 표현식의 유형을 설정할 수없는 문제가 있습니다. 아래는 내가 가지고있는 코드를 작동 : 동적 Linq - 런타임에 orderby 표현식 유형 설정
class MyClass {
public string Owner;
public DateTime Inserted;
}
Expression<Func<MyClass, bool>> whereExpression = DynamicExpression.ParseLambda<MyClass, bool>("owner = \"joe\"");
Expression<Func<MyClass, DateTime>> orderExpression = DynamicExpression.ParseLambda<MyClass, DateTime>("inserted");
var result = from item in table.Where(whereExpression).OrderBy(orderExpression) select item;
result.ToList().ForEach(m => Console.WriteLine("inserted=" + m.Inserted + "."));
나는 할 수 있도록하고 싶습니다 무엇 ORDERBY 표현에서 서로 다른 특성을 사용해야하기 때문에
가 작동되지 않는 아래의 코드 같은 것을 사용합니다.Expression<Func<MyClass, bool>> whereExpression = DynamicExpression.ParseLambda<MyClass, bool>("owner = \"joe\"");
Type orderType = typeof(DateTime);
Expression<Func<MyClass, orderType>> orderExpression = DynamicExpression.ParseLambda<MyClass, orderType>("inserted");
var result = from item in table.Where(whereExpression).OrderBy(orderExpression) select item;
result.ToList().ForEach(m => Console.WriteLine("inserted=" + m.Inserted + "."));
컴파일러가 orderExpression을 줄여서 만족스럽지 않습니다. 런타임에 Func의 유형을 설정하는 방법이 있습니까?