2009-08-20 21 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