我試圖基於實體框架6 DbContext
基於MySQL數據庫實現基本的主 - 細節視圖。該表結構簡單,因爲它可以得到:實體框架6:主 - 細節視圖顯示單個HashSet而不是過濾的細節項目
我的測試應用程序的形式包含兩個ComboBox
元素 - 一個用於主類別,一個用於一個子類別(在我的情況下,主站是該類型例如「IC」,細節更具體,如「FPGA」,「微控制器」等)。
每個ComboBox
的DataSource
屬性通過窗體設計器設置爲自己的BindingSource
。
的結合源本身有自己的DataSource
性質以不同的方式設置,秉承各種教程,我發現:
- 大師的BindingSource:設置爲通過
BindingList
- 代表
comp_main_type
表DbSet
詳細信息BindingSource:設置爲主綁定源,將DataMember
屬性設置爲從主設備到詳細設備的「導航屬性」
ExampleEntities entities = new ExampleEntities();
entities.comp_main_type.Load();
entities.comp_sub_type.Load();
BindingSourceCompMainType.DataSource = entities.comp_main_type.Local.ToBindingList();
BindingSourceCompSubType.DataSource = BindingSourceCompMainType;
BindingSourceCompSubType.DataMember = "comp_sub_type";
這部分工作正常 - 主ComboBox
正確填充,但細節ComboBox
不是。代替示出的個別項目的,一個HashSet
的種類名稱顯示爲唯一的項目:
System.Collections.Generic.HashSet`1[ExampleApp.comp_sub_type]
調試器顯示該HashSet
確實包含由所選擇的主項目過濾正確的項目:
我無法找到造成這種情況的原因 - 爲什麼ComboBox
中沒有填充HashSet
的項目,而是HashSet
本身?
看看[WinForms實體框架數據綁定](https://msdn.microsoft.com/en-us/library/jj682076(v = vs.113).aspx)。本逐步演練演示瞭如何將POCO類型綁定到「主控 - 詳細」窗體中的窗體窗體(WinForms)控件。應用程序使用實體框架使用數據庫中的數據填充對象,跟蹤更改並將數據保存到數據庫 –
謝謝,第二次檢查了指南,並根據我的回答進行了一些更改,現在它可以工作了! –
不客氣:) –