LinqDataSource 개체에 필터를 적용 할 수있는 웹 사용자 지정 컨트롤을 개발 중입니다. 그것은 특정 유형의 객체로 작동해야하기 때문에 일반적인 제어입니다.컴파일 타임에 개체 유형을 알 수 없을 때 LINQ 쿼리를 작성하는 방법
컨트롤은 필드를 따라 작동해야 객체의 내용 필드에 알고
/// <summary>
/// Method to get compared column from object
/// </summary>
public Expression<Func<T, int>> GetColumnMethod;
우리는 같은 코드로 필터링을 수행
(나는 그것을 개체 유형에서 해당 필드를 얻는 방법을 전송)
... if (selectedValue == "< =") 술어 = 술어. 그리고 (c => 방법 (c) < = val); if (selectedValue == "<") 술어 = 술어. 그리고 (c => 방법 (c) < 발);
모두 LINQ to SQL 변환이 발생할 때까지 계속 진행됩니다. 는 그런 오류 "방법은 '.....'SQL에 지원되는 변환이 없습니다.
이확인, CLR은 명 규모의 SQL을 만드는 방법을 알고하지 않습니다. 단지 C#을 번역하기 전에 식을 컴파일 할 수
경우 SQL에,하지만 난 그것을 할 수 있도록하는 방법을 몰라 (나는 하루 종일 시도 까다로운 어떤 방법 - 나는 이미 모든 ... 아무것도 도움이되지 그들을 기억할 수) Expression.Compile 같은
타락.
을하지만 ... 런타임에 CLR은 이미 내 개체의 형식을 알고 있으므로 SQL 식을 구축 할 수 있습니다. compile 된 델리게이트 값. 그러나 그것을하는 방법? 신은 알고 계십니다.
도움 감사합니다.