将datagridview与LINQ查询中的数据绑定

时间:2018-09-19 13:20:49

标签: c# entity-framework linq datagridview

如果我的问题之前被回答过,我想提前道歉(问题也很基本)。我对编程还很陌生,很可能我无法通过Google搜索得到答案,因为我什至都不了解问题的实质。

我正在尝试将datagridview与linq查询中的数据绑定到实体(使用Entity Framework)。

我正在使用以下代码实现这一目标:

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

不幸的是,即使查询确实返回了数据,这也没有给我任何结果(datagridview没有显示任何内容)。

当我像下面那样更改代码时,datagridview实际上会更新,但是(显然)我没有得到我想要的特定属性。

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

有人可以向我解释这是如何工作的以及如何解决吗?提前致谢!

0 个答案:

没有答案