|
4
|
| Jørn Schou-Rode dscher · 技术社区 · 17 年前 |
|
|
1
7
在NHibernate中使用双向一对多关系时,一端必须为“反向”。最佳实践是将集合的结尾设置为反向,因为这样可以避免不必要的SQL语句,并允许id列为“NOTNULL”。 在里面 section 6.4
您可能还希望在节上使用Add和Remove方法,该方法设置/重置静态的引用,并将静态添加到/从其自己的集合中删除:
根据 section 6.8
所以,如果你仍然有麻烦,考虑使用单向关系而不是双向的,但是这可能意味着你的外键列需要是空的(根据文章开头的注释)。否则,您可能需要将您的收藏映射为一个包或一套,而不是一个列表。 |
|
|
2
2
在Static的表中有一个名为“SectionID”或类似字段。 让此字段为空:NHibernate首先添加新记录,然后更新引用的id。 我在我的数据库中发现了这一点,我也很惊讶:为什么NH不喜欢数据库级别的正确表引用? |
|
|
3
1
在你的解决方案中,你就快到了。HasMany的映射是正确的。问题是,正如您所说,位置在数据库中没有得到更新(FWIW当您将其设置为null时,它只“起作用”,因为null被插入到数据库中;对我来说,这实际上不起作用;))。
在db中的Position列中的位置将被更新(记住在StaticMap中映射您的位置)。
|
|
|
Nico Pizzo · 子查询上的nhibernate联接 8 年前 |
|
|
YMC · 无法在Nhb 4中构建只有特定字段可供选择的2个表联接 8 年前 |
|
|
Stu · 具有特定类型的字符串外键的NHibernate映射 8 年前 |
|
|
Zout · 为Hibernate的HiLo算法管理的列生成ID 9 年前 |