如果我的问题之前被回答过,我想提前道歉(问题也很基本)。我对编程还很陌生,很可能我无法通过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();
}
有人可以向我解释这是如何工作的以及如何解决吗?提前致谢!