EF,WinForms。将导航属性绑定到DataGrid

时间:2014-09-22 16:03:55

标签: c# winforms entity-framework datagrid

我遵循本教程http://msdn.microsoft.com/pl-PL/data/jj682076。我想从我的Context加载特定类别,然后创建一个DataGrid并将其与此类别的Products属性绑定。我希望能够在DataGrid上添加,编辑和删除产品 我一直在试用这段代码:

context.Cetegories.Where(c => c.categoryID == _category.categoryID ).Select(c => c.Products).Load();
this.productsBindingSource.DataSource = _context.Categories.Local.ToBindingList();

其中productsBindingSource是我的绑定源,DataGrid由设计者生成,绑定源为DataSource。 我怎样才能做到这一点? 我还想过直接从上下文加载产品并将它们绑定到DataGrid

_context.Products.Where(c => c.categoryID == _category.categoryID).Load();

但是当我想直接从网格添加该类别的新产品时,fk存在问题,因为我不知道如何为新项目正确设置它。

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。用于加载类别产品的早期代码是正确的。问题是此代码返回Category类型的对象并从中获取products导航属性我必须使用另一个绑定源Category作为DataSource。之后,我可以使用productBingindSource DataSource设置新bs和DataMember属性设置为新{b}的products导航属性。这最终允许我将特定类别的产品与DataGrid绑定。