我有一个工作单元和一个使用EF 4和POCO的存储库。由于EF在可以跳过()和Take()之前需要一个有序集合,因此我添加了下面的单元测试(没有模拟),只是为了找出一个记录来查看它是否工作。帮助我理解“LINQ to Entities只支持铸造实体数据模型原语类型”
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
编辑:
真正的杀手锏是,如果我这样做:
orderbyLambda: p => new { p.ID }
它的工作原理...为什么?
orderbyLambda:p =>新{p.ID}工作......非常有趣...... – 2011-02-10 06:29:14