2010-11-09 50 views
2

我正在使用遺留表格我無法更改。該數據庫中有一個設置表,它由很多列(每個設置),只有一排:使用Nhibernate映射沒有主鍵的單行表格

Columns: Setting1 | Setting2  | Setting3 | etc... 
     ----------+--------------+-----------+------------- 
Row1: SomeValue | AnotherValue | LastValue | etc... 

現在,這將是所有的罰款,如果不是因爲該表缺少事實一個主鍵。顯然,原始開發人員並不認爲這是必要的,因爲只有一行。

有沒有任何方法將它與Nhibernate映射?我已經實現了一個基於SQL的解決方案,但我很想用Nhibernate獲得靈活性和簡單性。

我怕最糟糕,但是,有什麼想法?

+0

爲什麼你不能改變表格?它是憲法的一部分還是什麼?只需添加任何類型的虛擬Id列,並添加任何值。 – 2010-11-09 13:38:17

+0

該代碼是與ERP系統集成的一部分,該系統又有一些其他集成從其他角度對其進行整合。我不想擺弄桌面結構,以防其他集成或ERP更新過程出現問題。整合將被出售給我們公司以外的客戶,所以我無法確切地說出環境在生產中的外觀。 – 2010-11-09 13:47:07

回答

2

你可以映射,增加了一個虛擬PK列的視圖:

select 1 as SettingsId, Setting1, etc.... 

或從存儲過程加載對象。

2

好吧,只要選擇任何設置(列)作爲Id。唯一不方便的是,如果你需要更改的是PK,你必須刪除並設置重新插入該行...