我正在尝试将.NET实体的大图移植以使用NHIBERNATE,但是我遇到的问题是,大多数关系仅在单向上定义 - 在大多数情况下,子类包含对父母的参考,但是父母不包含涉及其子女的裁判。添加所有集合以将关系变成双向关系会有很多工作,所以我想知道对Nhibernate的后果会带来什么影响?

我注意到的结果之一是,级联删除似乎失败了(孩子不会在数据库中删除,从而导致参考完整性违反)。这是唯一的后果还是我需要注意的其他问题?

是否有关于何时应该是单一或双向关系的指导方针?

谢谢

有帮助吗?

解决方案

我认为无法级联删除将是NHIBERNATE本身的唯一问题。

但是您将无法轻松地漫步图。您可以从孩子到父母做到这一点,但显然不能从父母到孩子。因此,每当您想要父母的所有孩子时,您都必须发出查询。

因此,如果您将NH用于持久域模型,其中您需要将子对象从中使用某些操作的根对象,则必须在模型内部发出查询才能获取孩子。因此,您的模型将与您的数据访问相连。

或者,您必须将孩子作为收藏品传递给父对象,但是将模型上的集合开始宽度可能很容易,以便NH可以为您填充它们。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top