I am trying to implement a basic Master-Detail view, based on an Entity Framework 6 DbContext backed by a MySQL database. The table configuration is as simple as it may get:

The form of my test application contains two ComboBox elements - one for the master category and one for a subcategory (In my case, master is the type of a electronic component, e.g. "IC" and detail is more specific, like "FPGA", "Microcontroller" etc.).

The DataSource property of each ComboBox is set to their own BindingSource via the form designer.
The binding sources themselves have their DataSource properties set in different ways, adhering to various tutorials I found:
- Master BindingSource: Set to the
DbSetrepresenting thecomp_main_typetable via aBindingList - Detail BindingSource: Set to the master binding source, with the
DataMemberproperty set to the "navigation property" from master to detail
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";
In part, this works as expected - the master ComboBox is populated correctly, but the detail ComboBox is not. Instead of showing individual items, the type name of a HashSet is shown as the only item:
System.Collections.Generic.HashSet`1[ExampleApp.comp_sub_type]
The debugger shows that this HashSet indeed contains the correct items filtered by the selected master item:

I was unable to find the cause of this situation - why isn't the detail ComboBox populated with the items of the HashSet, but with the HashSet itself?