inverse="true"
和constrained="true"
之间有什么区别?
是不是都用于使关联双向? 也不是都添加了连接2个表中主键的外键约束?
我很困惑。请指导我。
答案 0 :(得分:1)
约束用于延迟加载一对一关系。因为它们是由共享主键实现的,所以NHibernate在获取它之前不知道另一个表中是否有记录。有了约束,你告诉NHibernate总是有一个预期的记录,所以它可以创建一个代理。请参阅this blog post from Ayende Rahien。
使用inverse,你告诉NHibernate许多方已经存储了一对多的关系,所以它不需要在一侧存储集合。我试着在这里解释一下:When to use inverse=false on NHibernate / Hibernate OneToMany relationships?