Как получить результат метода .All () в виде таблицы данных?
В настоящее время возвращается IQueryable, который нельзя использовать в качестве источника данных для WinForms DataGridView.
dataGridView1.DataSource = Product.All (); // не работает
Вы можете привязать List к элементу управления DataGridView, поэтому просто используйте метод ToList () в IQueryable, например:
MyDataGridView.DataSource = MyObject.All().ToList();
Для двухстороннего связывания можно использовать BindingList
dataGridView1.DataSource = new BindingList<Product>(Product.All().ToList());
BindingList будет обновляться автоматически при добавлении / удалении строк из DataGridView, а DataGridView будет обновляться автоматически при добавлении элементов в список привязок.
Если вы хотите автоматически обновлять DataGridView при изменении продукта, продукт должен реализовать INotifyPropertyChaged
Если в вашем классе Product не реализовано одно из следующих: IList, IListSource, IBindingList, IBindingListView; вы не сможете привязать результат к вашему DataGridView.