我找不到为什么会发生以下异常.任何帮助都非常感谢.
// EdcsEntities is derived from System.Data.Objects.ObjectContext
EdcsEntities db = new EdcsEntities();
var query = from i in db.Colleges
select i;
query = query.SkipWhile<College>(x => x.CollegeID != 100);
List<College> l = query.ToList<College>();
Run Code Online (Sandbox Code Playgroud)
例外:
LINQ to Entities无法识别方法'System.Linq.IQueryable
1[EDCS.ServiceLayer.DataAccess.College] SkipWhile[College](System.Linq.IQueryable1 [EDCS.ServiceLayer.DataAccess.College],System.Linq.Expressions.Expression1[System.Func2 [EDCS.ServiceLayer.DataAccess.College,System.Boolean]])'方法,并且此方法无法转换为商店表达式.
您不能使用SkipWhileEF,因为没有好的方法将它们转换为SQL.由于SQL查询返回无序集(除非您使用ORDER BY),因此使用这样的谓词没有意义,因此它们不存在.
SkipWhile在EF中使用的方法是AsEnumerable()在调用之前将查询转换为对象:
query = query.AsEnumerable().SkipWhile(x => x.CollegeID != 100);
Run Code Online (Sandbox Code Playgroud)
当然你可能想做这样的事情:
query = query.OrderBy(x => x.CollegeId).Where(x => x.CollegeID > 100);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2688 次 |
| 最近记录: |