首页 > 解决方案 > dataGridView 不显示列表

问题描述

我一直在尝试学习 linq 表达式。

我有这段代码没有在 dataGridView 中显示列表:

var x = bd.countries.OrderBy(a => a.description).TakeWhile(b => b.IdCountry<= 500);

在这一行:

dataGridView1.DataSource = x.ToList(); 

我收到此错误:

System.NotSupportedException: 'LINQ to Entities 无法识别方法 'System.Linq.IQueryable 1[App3BD.pais] TakeWhile[pais](System.Linq.IQueryable1[App3BD.pais], System.Linq.Expressions.Expression 1[System.Func2[App3BD.pais,System.Boolean]])' 方法和这个方法不能被翻译成商店表达式。

你能帮我吗?谢谢,保罗普拉卡

标签: c#

解决方案


TakeWhile 未在 LINQ to Entities 中实现,因此在实际实现查询之前无法使用它。改为使用Where

var x = bd.countries.OrderBy(a => a.description).Where(b => b.IdCountry<= 500);

推荐阅读