我什么时候可以在NHIBERNATE中使用单向关系?
-
03-10-2019 - |
题
我正在尝试将.NET实体的大图移植以使用NHIBERNATE,但是我遇到的问题是,大多数关系仅在单向上定义 - 在大多数情况下,子类包含对父母的参考,但是父母不包含涉及其子女的裁判。添加所有集合以将关系变成双向关系会有很多工作,所以我想知道对Nhibernate的后果会带来什么影响?
我注意到的结果之一是,级联删除似乎失败了(孩子不会在数据库中删除,从而导致参考完整性违反)。这是唯一的后果还是我需要注意的其他问题?
是否有关于何时应该是单一或双向关系的指导方针?
谢谢
解决方案
我认为无法级联删除将是NHIBERNATE本身的唯一问题。
但是您将无法轻松地漫步图。您可以从孩子到父母做到这一点,但显然不能从父母到孩子。因此,每当您想要父母的所有孩子时,您都必须发出查询。
因此,如果您将NH用于持久域模型,其中您需要将子对象从中使用某些操作的根对象,则必须在模型内部发出查询才能获取孩子。因此,您的模型将与您的数据访问相连。
或者,您必须将孩子作为收藏品传递给父对象,但是将模型上的集合开始宽度可能很容易,以便NH可以为您填充它们。
不隶属于 StackOverflow