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() 的快捷方式。
当我在做一个项目时,我看到了这行 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() 的快捷方式。