在NHibernate中,“inverse”和“cascade”是什么意思?

9
我正在学习Fluent Nhibernate,我的问题是:
什么是Inverse?我读到它的意思是关系的另一侧负责保存,那么Cascade也是这样吗?
有人能解释一下它们之间的区别吗? 请详细解释,因为我是NH的新手。
2个回答

1

看一下这个文本(链接失效,这里有一个archive.org的镜像,其中详细解释了“inverse”属性。

不同的级联选项由Ayende在他的博客中很好地解释了。

一个好的推荐阅读是“NHibernate实战”,虽然不是一本简单的书,但它将涵盖你很多的问题。


很抱歉,我不明白inverse = false是如何工作的,我只看到它做了一些愚蠢的事情,但它的解释是什么?当inverse = false时有什么好处吗?非常感谢! - gdoron
Inverse 只是定义关系的哪一端“拥有”它。如果设置为 false(在单向关系中),则父对象拥有该关系。在大多数情况下,这并没有意义,并且会导致额外的、不必要的 SQL 语句。 - kay.herzam
第一个链接目前无法访问。这里有一个在archive.org上的镜像:https://web.archive.org/web/20080415101633/http://simoes.org/docs/hibernate-2.1/155.html - CB-Dan
由于链接已经失效,而提供的存档链接加载速度非常缓慢,将文本包含在答案中会更有帮助。 - Ashraf Alam

0

我发现当Inverse = false是必要的时候有一个解释。 如果我想要一个带有“子项”集合的父对象,并且在子对象中不会有对父对象的引用。
因此,您可以在父级上使用Has many添加inverse = false,而不在子级中添加引用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接