У меня есть единица работы и репозиторий с использованием EF 4 и POCOs. Поскольку EF требует упорядоченного набора, прежде чем он сможет пропустить() и Take(), я добавил следующий unit test (без mocks), чтобы вытащить запись, чтобы увидеть, если она сработала.
var myList = UOW.EntityRepo.Get( orderbyLambda: p => p.ID, page: 1, pageSize: 1);
Это приводит к выражению orderbyLambda = {p => Convert(p.ID)}
и ошибке во время перечисления. Идентификатор - это tinyint
(Int16/short)
Так почему же это не удается выполнить по ID? Подробнее об ошибке
Unable to cast the type 'System.Int16' to type 'System.Object'.
Я определяю orderbyLambda как Expression<Func<E, object>> orderbyLambda
EDIT:
Настоящий убийца, если я это сделаю:
orderbyLambda: p => new { p.ID }
Это работает... Почему?