2009-04-29 106 views
4

在Fluent NHibernate中,References()返回一個不支持'ReadOnly()'方法的對象。爲什麼我不能在Fluent NHibernate References()映射上設置ReadOnly?

我試圖建立這種映射(即一個地方的更新不會傳播到該項目簡稱):

<many-to-one update="false" insert="false" 
name="DestinationSheet" column="DestinationSheetNumber" /> 

在正常(圖())映射,這兩個屬性可以是用ReadOnly()設置。

我想在做這樣的事情:

References(x => x.DestinationSheet). 
     ColumnName("DestinationSheetNumber").ReadOnly(); 

我可以手動添加更新和插入屬性使用SetAttributes(),並且工作正常,但我擔心的是,只讀()不存在References()是一條線索,我不應該試圖做到這一點。

有誰知道爲什麼ReadOnly()在此上下文中不可用?

回答

5

它現在還沒有實現。隨着時間的推移,我們會支持NHibernate的所有功能,但在那之前,SetAttribute方法可以讓您繼續。

另外,我們接受補丁!

0

引用創建了多對一映射,並且according to the documentation,此映射不支持只讀。您設置更新並插入虛假的方法聽起來很合適。 AFAIK,Fluent NHibernate項目計劃支持NHibernate的所有映射功能,但在那之前你必須使用SetAttributes。

+0

感謝這一點 - 在哪裏流利新罕布什爾州也已經實現了只讀(如地圖()),它這樣做只是通過設置插入和刪除的對象屬性 - 哪些屬於您引用的文檔。我開始認爲這只是Fluent的遺漏。 – 2009-04-29 16:42:39

+0

剛剛意識到我的映射XML並未將其轉化爲原始帖子,這使得難以跟蹤,抱歉。 – 2009-04-29 16:44:33

0

由詹姆斯·格雷戈裏提供的答案的實施是

References(x => x.Store).TheColumnNameIs("StoreId").SetAttribute("update","false"); 
相關問題