NHibernate napping 中的 inverse 和 readonly 属性有什么作用?

What do inverse and readonly attributes do in NHibernate napping do?

当我在做一个项目时,我看到了这行 NHibernate 映射

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

对我来说这是第一次看到有人使用 inverse 和 readonly 属性所以请谁能给我解释一下。

你可以找到逆向的详细描述here

TLDR;来自 link

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

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

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

而这个 link 只读

TLDR;

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