GridView не показывает результаты с расширением запроса First () - PullRequest
2 голосов
/ 22 декабря 2011

Я использую 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 ]

4 голосов
/ 22 декабря 2011

Результат не является коллекцией, поэтому его нельзя перечислить.Сначала это один объект.

0 голосов
/ 22 декабря 2011

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 вместо результата

0 голосов
/ 22 декабря 2011

Ваш результат - фактически один объект, а не набор объектов.

Попробуйте добавить результат в пустой список.

...