GridView不会显示First()查询扩展名的结果

时间:2011-12-22 15:43:24

标签: c# linq-to-entities controls

我正在使用LINQ-to-Entities并加载了Northwind数据库(LazyLoading = true)。

var db = new NorthwindEntities();
var result = db.Orders.Where(x => x.CustomerID == "ANATR").First();        
DataGridView1.DataSource = result;

以上代码未显示DataGridView中的任何项目(在此特定情况下为一个)。我做错了什么?

(如果我删除'First()'它工作正常并给我几个项目)

3 个答案:

答案 0 :(得分:4)

结果不是集合,这就是为什么,你不能列出它。首先是单个对象。

答案 1 :(得分:0)

您的结果实际上是单个对象而不是对象集合。

尝试将结果添加到空列表中。

答案 2 :(得分:0)

var db = new NorthwindEntities(); var result = db.Orders.Where(x => x.CustomerID ==“ANATR”)。First();
DataGridView1.DataSource = result;

由于result不是Collection这不起作用,您可以使用

var results =Enumerable.Repeat(result, 1);

要在列表中创建单个项目以执行此操作,或者

var results = new List<Order>() { result };

也会起作用

然后绑定到results而不是结果