转换为强类型数据集的正确方法

Correct method of casting to a strongly typed dataset

我有一个从一组 classes 层次结构(强类型数据集 (Entity Framework) 加载的 WPF 树视图。 我正在寻找将这些节点转换回这些对象之一的正确方法。

目前我必须为层次结构中的每个 class 编写代码(这是我如何删除对象的示例):

            if (MainTree.SelectedItem is tblProject)
            {
                var s = (tblProject)MainTree.SelectedItem;
               _context.tblProjects.Remove(s);
            }

            if (MainTree.SelectedItem is tblLine)
            {
                var s = (tblLine)MainTree.SelectedItem;
                _context.tblLines.Remove(s);
            }

            if (MainTree.SelectedItem is tblDevice)
            {
                var s = (tblDevice)MainTree.SelectedItem;
                _context.tblDevices.Remove(s);
            }

我想知道如何减少这段代码,并使其更加灵活,这样我就不必为将来可能添加的每个 class 添加代码。

如果是 EF,您可以使用 _context.Set(MainTree.SelectedItem.GetType()).Remove(MainTree.SelectedItem)

一般来说,我会建议查看 Data Binding and MVVM 模式以避免类似情况