1
나는 (이이 규격 개체에 싸여) Dynamic Linq을 기반으로 클라이언트가 제공하는 문자열에서 술어를 수행하는 방법을 알아 냈 :동적 표현식 API : 술어, OrderBy 사양을 코딩하는 방법은 무엇입니까?
그들의 도움에 설명 된대로 필터를 표현 언어의 문자열입니다return System.Linq.Dynamic.DynamicExpression.ParseLambda<TE, bool>
(filter.ToString(), arguments.ToArray())
파일. 매력처럼 작동합니다.
Expression<Func<E, object>> orderby
참고 :
여기 필터링 내 저장소 방법입니다 및 주문 항목
을그러나 강력한 형식의이 같은 표현에 ORDERBY 필드의 문자열 목록을 번역 할 수 있습니다
public IList<E> Get(Expression<Func<E, bool>> filterLambda = null, Expression<Func<E, object>> orderbyLambda = null, int? page = null, int? pageSize = null)
전화 번호 :
var a = Repo.Get(filterLambda: Specification.Where( StringListOfFilters),
orderbyLambda: Specification.OrderBy(StringListOfOrderBy),
page: 1,
pageSize: 100);
OrderBy 필드의 문자열 목록을 강력한 형식의 람다 식으로 변환하는 방법에 대한 아이디어가 있습니까? 문자열의 예는 다음과 같습니다
fieldname
fieldname descending
또 다른 참고 :
내가 주입을 방지하기 위해 정규식을 확인하는 fieldname op value
있는 클라이언트에서 오는 문자열을 번역하고있다. 또한 필자는 저장소가 아닌 Specification 객체에서 Dynamic Linq만을 참조하려고합니다.