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