代码之家  ›  专栏  ›  技术社区  ›  Will Dean

为什么不能在fluent nhibernate references()映射上设置readonly?

  •  4
  • Will Dean  · 技术社区  · 15 年前

    在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()手动添加更新和插入属性,这很好,但是我担心readonly()在references()上不存在这一事实是我不应该尝试这样做的一个线索。

    有人知道为什么readonly()在此上下文中不可用吗?

    3 回复  |  直到 15 年前
        1
  •  5
  •   James Gregory    15 年前

    它还没有实现。随着时间的推移,我们将支持NHibernate的所有功能,但直到那时 SetAttribute 方法允许您继续。

    作为旁白,我们接受补丁!

        2
  •  0
  •   Jamie Ide    15 年前

    引用创建多对一映射,并 according to the documentation ,此映射不支持只读。你设置更新和插入错误声音的方法对我来说是正确的。Fluentnhibernate项目计划支持nhibernate的所有映射功能,但在此之前,您必须使用setattributes。

        3
  •  0
  •   Jon Masters    15 年前

    James Gregory提供的答案的实现是

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