ОК, эта штука просто озадачивает меня.У меня есть таблица, скажем «Пользователи», со столбцами «Идентификатор пользователя», «Имя» и т. Д. Имейте сопоставленный объект с использованием CTP5.Итак, теперь я хочу проверить это и сделать следующее:
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 toОбъекты не распознают метод метода 'User get_Item (Int32)', и этот метод не может быть преобразован в выражение хранилища.
EF испытывает трудности, видя, что я просто прошу вернуть int вПользователи [0] .ID?Если я заменяю вызов users [0] .ID на прямой int - работает нормально.
Я получаю то, что он пытается сделать, но я подумал, что довольно легко проверить, принадлежит ли метод.NET или Sql Server?