Encadernação datagridview com dados de consulta LINQ

votos
0

Eu gostaria de me desculpar com antecedência em caso minha pergunta foi respondida antes (também o problema é provavelmente bastante básico também). Eu sou muito novo para programação e há uma boa chance de eu deixar de google para respostas desde que eu nem sequer têm uma idéia do que o problema realmente é.

Estou tentando ligar datagridview com dados de consulta LINQ to Entities (usando Entity Framework).

Estou usando este código para conseguir isso:

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();
}

Infelizmente, isso não está me dando qualquer resultado (datagridview não mostra nada), eventhough a consulta faz retornar dados.

Quando eu alterar o código como abaixo, datagridview realmente atualizações, mas (obviamente) Eu não entendo as propriedades específicas de meu desejo exibido.

 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();
    }

Alguém pode me explicar como isso funciona e como resolver isso? Desde já, obrigado!

Publicado 19/09/2018 em 13:20
fonte usuário
Em outras línguas...                            

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