일부 클라이언트의 경우 데이터 액세스 계층에 사용할 클래스 집합이 있습니다. 나는 필터의 집합을 허용하고 데이터 액세스의 부분은이 형식으로 전송하기 :필터 문자열을 C# 대리자로 변환
"{Member[.Member....]}{Operator}{Value}"
나는이 같은 LINQ 쿼리에 사용하기 위해 대표로 이러한 문자열을 설정하고자하는
:
.Where([delegate returned by a factory])
parent => parent.Child.Id == 5
:
IEnumerable<Parent> parents = GetSomeParents();
string filter = "Child.Id=5";
var expression = FilterFactory<Parent>.GetExpression(filter);
parents = parents.Where(expression);
표현 대리인 포함됩니다 : 여기
는보다 구체적인 예이다
리플렉션을 사용하여 보내는 모든 멤버 경로를 처리하는 일반적인 방법으로 FilterFactory를 구성하는 방법이 있습니까? 색인 생성을위한 경로는 필수는 아니지만 좋을 것입니다.
이것은 기본적으로 말하고있는 것입니다. 표현식 작성기가 실행되는 데는 약간의 시행 착오가있을 것입니다! = D – Tejs
동적 쿼리 라이브러리가 올바르게 작동합니다. 나는 NHibernate DAL 클래스에 우리 Linq에 바로 연결했고 꽤 멋지게 연주했다. – mikeschuld