在NHibernate小睡中,inverse和readonly属性做了什么?

时间:2017-06-14 15:08:08

标签: c# nhibernate fluent-nhibernate fluent-nhibernate-mapping

当我正在开展一个项目时,我已经看到了这行NHibernate映射

HasMany(entity => entity.Tasks).KeyColumn("APPLICATION_ID").Cascade.AllDeleteOrphan().ReadOnly().Inverse();

这是我第一次看到有人使用反向和只读属性,所以请任何人向我解释。

1 个答案:

答案 0 :(得分:0)

您可以找到反here

的详细说明

TLDR;来自链接

  • Inverse是一个布尔属性,可以放在集合上 映射,无论集合的角色如何(即在一对多之内, 多对多等),以及连接映射。

  • 我们不能对其他关系类型进行反转,例如多对一或一对一。

  • 默认情况下,inverse设置为false。
  • 反向对单向关系没有多大意义,它只能用于双向关系。
  • 一般建议在每个双向关系的一侧使用inverse =“true”。
  • 当我们没有设置反向时,NHProf会抱怨多余的更新。

link用于Readonly

TLDR;

除了一些属性和属性与地图名称本身的不同命名之外,唯一的区别是FNH中可用的ReadOnly方法。 这只是设置.Not.Insert()和.Not.Update()的快捷方式。