web-dev-qa-db-de.com

Wie kann Entity Framework korrekt als Datenquelle für DataGridView verwendet werden?

Ich habe versucht, DataSource über DataGridView Designer festzulegen, aber es wurde dort nicht aufgeführt, und dann habe ich über den Assistenten, der DataSet generiert hat, eine neue Datenquelle generiert.

 enter image description here

Aber jetzt habe ich Entity Framework in meinem Projekt + DataSet, wie kann ich nur Entity Framework verwenden ... Ich bin verwirrt, bitte helfen Sie

artiklBindingSource wurde automatisch generiert Ich wollte nur EF als Datenquelle verwenden, jetzt bin ich mit unerwünschtem DataSet und viel Durcheinander festgefahren.

6
ChenChi

Um eine Datenquelle für die Verwendung mit Ihrer DataGridView im DataGridView-Aufgaben -Panel hinzuzufügen, öffnen Sie Choose Data Source: und das Kombinationsfeld.

  1. Klicken Sie auf Projektdatenquelle hinzufügen, um Datenquellenkonfiguration Wizardzu öffnen.
  2. In Wählen Sie einen Datenquellentyp Wählen Sie Objekt und klicken Sie auf Weiter.
  3. Wählen Sie in Datenquellenobjekte auswählen die Klasse aus, die Sie der Datenquelle hinzufügen möchten, und klicken Sie auf Fertigstellen.
  4. Es wird ein BindingSource zu Ihrem Formular hinzugefügt, das als DataSource Ihres DataGridView verwendet wird, und Sie sollten Daten laden und auf _ setzen.DataSource Ihres BindingSourc und dann werden Daten in Ihrem Grid angezeigt. Zum Beispiel um Daten zu laden.

Hier ist das Codebeispiel:

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

Ich weiß nicht, ob es die schnellste Methode ist, aber es ist die einfachere Methode:

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