web-dev-qa-db-fra.com

Quelle est la bonne façon d'utiliser Entity Framework comme source de données pour DataGridView?

J'ai essayé de définir DataSource via DataGridView Designer, mais cela ne figurait pas dans la liste. J'ai ensuite généré une nouvelle source de données via un assistant qui générait DataSet.

 enter image description here

Mais maintenant, j'ai Entity Framework dans mon projet + DataSet, comment puis-je utiliser Entity Framework uniquement ... Je suis confus, aidez-moi

artiklBindingSource a été généré automatiquement. Je voulais uniquement utiliser EF comme source de données. Je suis maintenant coincé avec un ensemble de données non souhaité et un tas de dégâts.

6
ChenChi

Pour ajouter une source de données à utiliser avec votre DataGridView dans Tâches DataGridView panneau, ouvrez Choisissez une source de données: , puis:

  1. Cliquez sur Ajouter une source de données de projet pour ouvrir Configuration de la source de données Wizard .
  2. Dans Choisissez un type de source de données Choisissez Objet et cliquez sur Suivant .
  3. Dans Sélectionnez des objets de source de données , choisissez la classe que vous souhaitez ajouter à la source de données et cliquez sur Terminer .
  4. Il ajoutera un BindingSource à votre Formulaire qui est utilisé comme DataSource de votre DataGridView et vous devrez charger des données et les définir sur DataSource de votre BindingSourc puis les données seront affichées dans votre grille. Par exemple pour charger des données.

Voici l'exemple de code:

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)
        {
            SampleDBEntities 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();
        }
    }
}
10
Reza Aghaei

Je ne sais pas si c'est la méthode la plus rapide mais c'est la plus simple:

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