假设我在数据库中有一系列表格(例如用途)有关一系列餐馆菜单项的信息。 所以,例如,我们有10个表:
Rest_1, Rest_2, Rest_3, .... Rest_10
(Names being more complex, though, in the real situation)
并且每个表都具有EXACT SAME列结构,比如说(只是为了说明目的而做到这一点,请原谅示例的弱点):
Col1 (Primary Key) = Menu_Item
Col2 = Menu_Category (Desert, Appetizer, ...)
Col3 = Item_Cost
Col4 = Item_SalePrice
Col5 = Item_Popularity
Col6 = Seasonal_Item (Boolean - Is it seasonal)
Col7 = Min_Order (Boolean - Is there a minimum order from the vendor)
Col8 = In_Stock (Boolean - Is it in stock now)
....
现在,我有一个Windows窗体,例如3个组合框和一个复选框:
cboRestaurant
cboMenuCategory
cboPopularity
ckInStock
根据用户选择的内容,DataView显示正确的(已过滤的)信息,然后可用于处理某些信息。
所以,我的情况是我们会:
......再次,我知道这是一个弱小的例子,但我试图传达这个概念。
所以...根据我在网上提到的内容,我认为最好的情况是:
我不知道该怎么做才能让数据集知道所有数据表是如何相关的(所有具有相同的列名) AND 将组合框绑定到数据集,例如过滤信息基于前一个组合框中选择的内容。
创建一个(自定义对象)列表,它将包含所有表中的所有这些变量,然后根据combobox.SelectedIndexChanged
\ ckInStock.CheckedChanged
事件列出Linq-Query列表 - 这似乎更糟糕了'不断查询和重新查询。
如果解决方案#1是正确的,我如何创建聚合数据集并根据前面的组合框和复选框值使组合框具有正确的过滤数据?
有没有更好的方法来实现这个我完全不知道的东西 - 一个内置的更好的对象,为你做级联过滤,或者如何最好地完成这个呢?