相关疑难解决方法(0)

NHibernate中的反向属性

我如何使用反向属性?如果我没有弄错,对于一对多关系,inverse属性必须设置为true.对于多对多关系,其中一个实体类逆属性必须设置为true,另一个设置为false.

任何人都可以对此有所了解吗?

nhibernate nhibernate-mapping

87
推荐指数
2
解决办法
3万
查看次数

何时在NHibernate/Hibernate OneToMany关系上使用inverse = false?

我一直试图掌握Hibernate的逆属性,它似乎只是概念上难以解决的问题之一.

我得到的要点是,当你有一个使用一对多映射的Child对象集合的父实体(例如Parent)时,在映射上设置inverse = true告诉Hibernate'另一边(Child) )有责任更新自己以维护其表中的外键引用'.

这样做对于在代码中向集合中添加Children,然后保存Parent(使用cascade-all set)有两个好处:在数据库上保存一个不必要的命中(因为没有逆集,Hibernate认为它有两个地方更新FK关系),并根据官方文档:

如果关联的列被声明为NOT NULL,则NHibernate在创建或更新关联时可能会导致约束违规.要防止出现此问题,必须使用标记为inverse ="true"的多值结束(集合或包)的双向关联.

到目前为止,这一切似乎都有意义.我不明白是这样的:你什么时候会希望使用逆=真正在一个一对多的关系?

collections nhibernate hibernate inverse one-to-many

70
推荐指数
3
解决办法
3万
查看次数

NHibernate Definitive Cascade应用指南

是否有任何互联网资源对NHibernate的所有级联设置有明确的指导,其中包括类结构,HBM的示例以及与NH的所有关系的每个级联设置的动作的含义.

如果有以最正确的方式进行公共关联的示例,例如设置状态表,您将永远不会最终级联删除状态,或者删除具有CreatedBy用户属性的对象,那么它将会很有用.永远不会在级联等中删除用户

c# nhibernate cascade

25
推荐指数
1
解决办法
2万
查看次数