我不是受教育的計算機科學家,所以請忽略任何陰暗的術語濫用。
在我的框架中,一個名爲Record的基礎窗體打開窗體RecordDetail作爲對話框。例如,RecordClient擴展了Record幷包含客戶端數據和客戶端相關子數據的選項卡式列表,RecordDetail擴展了一個子數據行,以便完全基於反射和顯示作爲針對DataContext使用的定製屬性存儲的覆蓋進行詳細編輯。記錄是爲應用程序分類的,但我認爲不需要子類RecordDetail。除了在列出的孩子中顯示外鍵修改之外,這種方法是有效的。
i 必須使用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」, 「去哪兒」 和 「的SingleOrDefault」 之間發生。
在這個美好的星期天早上欣賞任何視角。