Encuadernación DataGridView con datos de consulta LINQ

votos
0

Me gustaría disculparme por adelantado en caso de que mi pregunta fue respondida antes (también el problema es probablemente bastante básico también). Soy bastante nuevo en la programación y hay una buena probabilidad de fallo en google en busca de respuestas ya que no tienen ni siquiera una idea de lo que realmente es el problema.

Estoy tratando de obligar DataGridView con datos de consulta LINQ a las entidades (utilizando Entity Framework).

Estoy usando este código para lograr lo siguiente:

DatabaseModelContainer context = new DatabaseModelContainer();
private void FormDocumentUpdateWT_Load(object sender, EventArgs e)
{
        context.Configuration.ProxyCreationEnabled = false;
        context.DocumentDetailsSet.Load();
        this.documentDetailsBindingSource.DataSource = (from x in context.DocumentDetailsSet.Local
                                                        where x.DocumentHeaderId == currentDocument.Id
                                                        select new 
                                                        {

                                                          x.Inventory.Number,
                                                          x.Amount,
                                                          x.Containers.Name,
                                                          x.Separate,
                                                          x.Kanban

                                                        }).ToList();
        dataGridViewItems.DataSource = documentDetailsBindingSource;
        dataGridViewItems.Update();
        dataGridViewItems.Refresh();
}

Desafortunadamente esto no me está dando ningún resultado (DataGridView no muestra nada), apesar de la consulta de datos hace volver.

Cuando cambio el código como el de abajo, DataGridView realidad actualizaciones, pero (obviamente) que no entiendo las propiedades específicas de mi deseo está representada.

 DatabaseModelContainer context = new DatabaseModelContainer();

 private void FormDocumentUpdateWT_Load(object sender, EventArgs e)
    {
        context.Configuration.ProxyCreationEnabled = false;
        context.DocumentDetailsSet.Load();
        this.documentDetailsBindingSource.DataSource = (from x in context.DocumentDetailsSet.Local
                                                        where x.DocumentHeaderId == currentDocument.Id
                                                        select new                                   {
                                                           x.Inventory, //this is changed
                                                           x.Amount,
                                                           x.Containers, // also changed
                                                           x.Separate,
                                                           x.Kanban

                                                        }).ToList();
        dataGridViewItems.DataSource = documentDetailsBindingSource;
        dataGridViewItems.Update();
        dataGridViewItems.Refresh();
    }

¿Puede alguien explicarme cómo funciona esto y cómo evitar esto? ¡Gracias por adelantado!

Publicado el 19/09/2018 a las 13:20
fuente por usuario
En otros idiomas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more