2009-07-24 3 views
3

갤러리 엔티티 프레임 워크 클래스가 있는데, ScottGu의 블로그에 게시 된 동적 Linq 라이브러리를 사용하여 엔티티 집합을 쿼리하려고합니다. 코드 실패한 라인은 읽Dynamic Linq Entity Framework 쿼리를 사용하여 이상한 예외가 발생했습니다.

return context.Galleries.OrderBy(sidx + " " + sord).Skip(page * rows).Take(rows).ToList(); 

sidx == '이름', 및 sord == "소계".

Gallery 개체에는 "이름"이라는 속성이 있습니다. 그러나 실행하면 다음 예외가 발생합니다.

'제목'을 현재 범위 또는 컨텍스트에서 확인할 수 없습니다. 모든 참조 된 변수가 범위에 있고 필수 스키마가로드되어 있고 네임 스페이스가 간단한 식별자 6 행 1 열 근처에서 올바르게 참조되었는지 확인하십시오.

이게 무슨 뜻인지 아는 사람이 있습니까?

+0

버그가 다른 곳에서 아마도 쿼리에 있습니다. 포함하는 코드 행은 단순히 ToList로 인해 쿼리를 실행하는 행입니다. 거기에 오류 표면이 보이지만 실제 버그는 다른 곳에 있습니다. 내 첫 번째 추측은 매핑이지만, 여기에 충분한 코드가 없습니다. –

답변

0

수정 사항을 발견했지만 원래의 문제점을 설명하지 못했습니다. 이 쿼리는 라이브러리에 있으며 asp.net mvc 응용 프로그램에서 참조됩니다. 그것은 잘 컴파일되지만 런타임에 폭탄을 터뜨렸다. 수정 사항은 mvc 응용 프로그램 자체에 dynamiclinq 클래스를 추가하고 일반 IQueryable 양식 라이브러리를 반환하고 컨트롤러 자체에서 필터링을 수행합니다. 정확히 동일한 코드가 거기에서 작동했습니다. 어떻게 든 도서관에서 분리가 문제를 일으켰습니다.

2

사용 :>

return context.Galleries.AsQueryable().OrderBy(sidx + " " + sord).Skip(page * rows).Take(rows).ToList();

8

AsQueryable < "는"별명이 문제는 그래서 다음 코드해야 작품 :

접두사 필터 필드 이름 제목it.Title

답변을 찾았습니다. http://challenge-me.ws/?tag=/Exceptions

+0

OP와 같은 메시지가 있었는데 이것이 수정되었습니다. –

+0

Doh! 수정 2 일을 찾고있었습니다. 고마워! –

관련 문제