2011-06-24 52 views
0

我試圖以這樣的方式映射實體屬性,即將其值寫入數據庫列,但使用公式檢索其值。如何使用公式和列規範來映射NHibernate實體屬性

爲了關注實際問題,我簡化了示例。實際上,公式有點複雜,並且使用NHibernate過濾器。

<many-to-one cascade="all" class="Thing" lazy="false" name="MyThing" 
    formula="(SELECT Things.Value FROM Things WHERE Things.Id = MyThingId)"> 
    <column name="MyThingId" /> 
</many-to-one> 

但是,該公式被忽略,除非我刪除<column name="MyThingId" />行。

我如何修復這個映射爲了讓NHibernate使用公式?

回答

6

我不認爲有可能做你正在嘗試的東西。

爲什麼不把它分成兩部分?一個只讀的公式和其他讀/寫與直接列映射...

如果你仍然想要一個單一的接入點,你可以映射第三個被忽略的propery,實現它的getset訪問器與兩個第一屬性。

+0

謝謝。我最終使用了兩個屬性而不是一個,一個用於提供持久性,另一個用於使用公式進行檢索。 –