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

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

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

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();
        }
    }
}