What is the correct way to use Entity Framework as datasource for DataGridView?

.net c# datagridview entity-framework winforms

Question

I tried setting DataSource via DataGridView Designer but it wasn't listed there and then I generated new datasource via wizard which generated DataSet.

enter image description here

But now I have Entity Framework in my project + DataSet how can I use Entity Framework only... I'm confused.

artiklBindingSource was automatically generated I only wanted to use EF as datasource now I'm stuck with unwanted DataSet.

1
15
12/3/2019 4:31:07 PM

Accepted Answer

To add a data source to use with your DataGridView in DataGridView Tasks panel, open Choose Data Source: combo box and then:

  1. Click Add Project Data Source to open Data Source Configuration Wizard.
  2. In Choose a Data Source Type Choose Object and click Next.
  3. In Select Data Source Objects choose class which you want to add to data source and click Finish.
  4. It will add a BindingSource to your Form which is used as DataSource of your DataGridView and you should load data and set data to DataSource of your BindingSourc and then data will be shown in your grid. For example to load data.

Here is the code sample:

using System;
using System.Windows.Forms;
using System.Data.Entity;
namespace WindowsFormsApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        SampleDBEntities db;
        private void Form1_Load(object sender, EventArgs e)
        {
            db = new SampleDBEntities();
            db.Products.Load();
            this.productBindingSource.DataSource = db.Products.Local.ToBindingList();
        }
        private void SaveButton_Click(object sender, EventArgs e)
        {
            db.SaveChanges();
        }
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            db.Dispose();
        }
    }
}
20
9/30/2019 3:55:05 PM

Popular Answer

Don't know if it's the fastest method but it's the simpler:

dataGridViewStudents.DataSource = schoolContext.Students.ToList<Student>();


Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow