2011-03-06 10 views
0

早上好。在非xml環境中針對linq的通用鍵值訪問解耦

我不是受教育的計算機科學家,所以請忽略任何陰暗的術語濫用。

在我的框架中,一個名爲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」 之間發生。

在這個美好的星期天早上欣賞任何視角。

回答

0

實際上,我已決定叔叔下並緩存子類記錄窗體訪問的池中的外鍵對象。