Requête LINQ to entities pour DataTable

J'ai besoin de stocker les données renvoyées par la requête LINQ to entities (ci-dessous) dans un DataTable, de sorte que je peux l'utiliser comme source de données pour un DataGridView, comment puis-je le faire?

Dans ce cas, je suis en utilisant LINQ to entities une requête à l'encontre d'une Entité Cadre conceptuel du modèle, de sorte db est une classe qui hérite de 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;
}

J'ai essayé de faire ce (ci-dessous), mais il déclenche une exception lors de l'exécution [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]'.

Merci d'avance

OriginalL'auteur Zignd | 2013-08-25