为什么我不能在Fluent NHibernate References()映射上设置ReadOnly?

时间:2009-04-29 15:36:08

标签: nhibernate fluent-nhibernate

在Fluent NHibernate中,References()返回一个不支持'ReadOnly()'方法的对象。

我正在尝试创建这种映射(即更新未传播到引用项目的映射):

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

在普通(map())映射上,可以使用ReadOnly()设置这两个属性。

我想做这样的事情:

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

我可以使用SetAttributes()手动添加更新和插入属性,并且工作正常,但我担心References()上没有ReadOnly()的事实是我不应该尝试的线索这样做。

有人知道为什么ReadOnly()在这种情况下不可用吗?

3 个答案:

答案 0 :(得分:5)

它还没有实现。随着时间的推移,我们将支持NHibernate的所有功能,但在此之前,SetAttribute方法可以让您继续使用。

顺便说一句,我们接受补丁!

答案 1 :(得分:0)

引用创建多对一映射和according to the documentation,此映射不支持只读。您设置更新和插入错误的方法听起来对我而言。 AFAIK,Fluent NHibernate项目计划支持NHibernate的所有映射功能,但在此之前你必须使用SetAttributes。

答案 2 :(得分:0)

James Gregory提供的答案的实施是

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