0

早上好。

我不是受过教育的计算机科学家,所以请忽略任何可疑的术语滥用。

在我的框架中,名为 Record 的基本表单以对话框形式打开 RecordDetail 表单。例如,RecordClient 扩展 Record 并包含客户端数据和与客户端相关的子数据的选项卡式列表,RecordDetail 扩展一个子数据行以进行详细编辑,完全基于存储为用于 DataContext 的自定义属性的反射和显示覆盖。Record 是应用程序的子类,但我认为不需要子类 RecordDetail。除了在列出的子项中显示外键编辑外,此方法有效。

必须使用ObjectListView和 Linq;我不能使用 WPF/XML。因为我为非连续数据库连接使用序列化技巧,所以当我克隆数据以管理状态时,我会丢失外键对象。ObjectListView 需要外键对象来显示和一般邪恶。我知道 Hibernate,但 Linq 让我不知所措:

在 RecordDetail 对话框关闭后,我如何从 Record 中访问外键对象 - 无需耦合框架和特定于应用程序的类?

那是,

Type rowType = row.GetType();
IDomain workDamnit = (IDomain)dataContextReflectedFromRowType.GetTable(rowType).Where(x => x.PrimaryKey == 1).SingleOrDefault();

其中“PrimaryKey”包装了主键属性,失败发生在“GetTable”、“Where”和“SingleOrDefault”之间。

在这个晴朗的星期天早上,任何观点都值得赞赏。

4

1 回答 1

0

实际上,我决定将外键对象缓存在子类记录表单访问的池中。

于 2011-03-06T15:05:58.897 回答