LINQ to Entities-Abfrage zu DataTable

Brauche ich zum speichern der Daten zurückgegeben, die von diesem LINQ to Entities-Abfrage (unten) in eine DataTable, so dass ich kann verwenden Sie es als Datenquelle für ein DataGridView, wie kann ich das tun?

In diesem Fall bin ich mit LINQ to Entities-Abfrage wird ein Entity Framework Modell, so db ist eine Klasse, die erbt von System.Data.Entity.DbContext.

using (TccContext db = new TccContext())
{
    var query = from vendedor in db.Vendedores.AsEnumerable()
                where vendedor.codigo == Convert.ToInt32(textBoxPesquisa.Text)
                select vendedor;
    //I'd like to do something like DataTable dt = query;
}

Habe ich versucht, dies zu tun (siehe unten), aber es wirft eine exception während der Ausführung [1].

using (TccContext db = new TccContext())
{
    IEnumerable<DataRow> query = (IEnumerable<DataRow>)(from vendedor in db.Vendedores.AsEnumerable()
                                                        where vendedor.codigo == Convert.ToInt32(textBoxPesquisa.Text)
                                                        select vendedor);

    using (DataTable dt = query.CopyToDataTable<DataRow>())
    {
        this.dataGridViewProcura.Rows.Add(
            dt.Rows[0][0],  //Código
            dt.Rows[0][1],  //Nome
            dt.Rows[0][2]); //Venda Mensal
    }
}

[1]: Exception: InvalidCastException

Unable to cast object of type 'WhereEnumerableIterator`1[Projeto_TCC.Models.Vendedor]' to type 'System.Collections.Generic.IEnumerable`1[System.Data.DataRow]'.

Vielen Dank im Voraus

InformationsquelleAutor Zignd | 2013-08-25

Schreibe einen Kommentar