2009-08-20 39 views
0

对于我们的测试设备,我们使用NHibernate生成数据库模式。我们有一个奇怪的例子,其中一个实体引用另一个实体,但我们不希望有一个外键约束(应该可以删除引用的实体,因此不能使用外键)。Nhibernate - 生成没有设置密钥的模式

是否可以指定生成的模式没有特定关系的外键?

+0

如果删除引用的实体,想必你应该更新引用它的的entites?如果没有这样做,你就违背了参照完整性。 – 2009-08-20 10:25:18

+0

这就是意图。在这个特殊的(不寻常的)情况下,我们希望能够删除实体而不更新引用它的实体。外键查找应该默默地失败。 – 2009-08-20 10:42:58

回答

1

Jay-

如果您在使用功能NHibernate,你可以把这个在您的信息实现IHasManyConvention或IReferenceConvention(如果使用惯例)。

Cascade.SaveUpdate()应该传播保存和更新,但在父项被删除时保留孤儿子对象。

在标准NHibernate的HBM文件,我相信一个袋子的标签应该是这样的:

<bag cascade="save-update" name="EntityName"> ... </bag> 

更新:这是一个信息发布者Ayende上成为孤儿的子对象的主题,与级联值的差异。

http://bit.ly/bQDrv