2011-03-06 1 views
0

OK,이 점이 저를 단지 자극합니다. CTP5를 사용하여 매핑 된 개체를 UserID, Name 등의 열이있는 테이블이라는 사용자가 있다고 가정합니다. 이제 테스트하고 다음과 같이하고 싶습니다.EF4는 예외 (imho)가없는 경우 NotSupported 예외를 throw합니다.

List<User> users = new List(); 
// Some init code here, making say 3 users. 
using (UsersDbContext) 
{ 
    // insert users 
} 

지금까지 그렇게 잘 작동합니다. 이제 레코드가 일치하는지 확인하고 싶기 때문에 다음 코드를 사용하여 사용자를 다시 선택합니다.

using (UsersDbContext dbc = UsersDbContext.GetDbContext()) 
{ 
List<Users> usersRead = dbc.Users.Where(x => x.ID >= users[0].ID && x.ID <= users[users.Count - 1].ID).ToList(); 
} 

이 발생하고 예외 :

System.NotSupportedException :이 방법은 로 번역 될 수 없습니다 엔티티에 LINQ는 방법 '사용자 get_Item (INT32)'방법을 인식하고 하지 않습니다 상점 표현.

EF는 내가 사용자 [0] .ID에서 int를 반환 할 것을 요구하는 것을보기가 어렵습니다.
사용자 [0] .ID에 대한 호출을 직선 인 int로 바꾼다면 정상적으로 작동합니다.

나는 그 일을 시도하지만 그 방법이 .NET이나 Sql Server에 속하는지 쉽게 확인해야한다고 생각한다.

답변

1

SQL 쿼리로 변환되지 않는 EF 식의 인덱서에 액세스하려고합니다. 다음과 같이 검색어 외부에서 매개 변수를 이동해야합니다.

+0

네, 그게 내가 한 일입니다. 그래서 그것은 일종의 버그 기능입니다. – Evgeni

관련 문제