Entity Framework CTP5를 사용하여 데이터베이스의 결과를 필터링하려고합니다. 여기 내 현재 방법입니다.GetValue를 사용하여 IQueryable <> 동적 순서 지정/필터링 실패
IQueryable<Form> Forms = DataContext.CreateFormContext().Forms;
foreach(string header in Headers) {
Forms = Forms.Where(f => f.GetType()
.GetProperty(header)
.GetValue(f, null)
.ToString()
.IndexOf(filter,
StringComparison.InvariantCultureIgnoreCase) >= 0);
}
그러나 GetValue는 Entity Framework를 사용하여 작동하지 않습니다. 타입이 IEnumerable<>
일 때 수행합니다. IQueryable<>
동일한 효과를 내기 위해 사용할 수있는 대안이 있습니까?
IEnumerable과 IQueryable의 차이점은 Object (IEnumerable)의 Linq가 매개 변수로 델리게이트를 받아 코드를 직접 실행하므로 컴파일 할 수있는 모든 것이 가능하다는 것입니다. EF는 IQueryable을 사용하고 표현식 파서는 인식하고 파싱 할 수있는 것에 한계가 있습니다. –