2012-09-14 160 views
4

我有這樣的映射情況NHibernate的:NHibernate的映射參考沒有外鍵

ClassA 
mapping.Id(x => x.Id).Column("rowid").GeneratedBy.Identity().Unique(); 

ClassB 
mapping.Id(x => x.Id).Column("rowid").GeneratedBy.Identity().Unique(); 
mapping.References<ClassA>(x => x.ClassA).Nullable(); 

當NHibernate的生成數據庫架構,即使我指定它創建這些表之間的外鍵「可映射聲明中的「可空」屬性。很顯然,如果我試圖保存我的對象,我會得到一個外鍵約束錯誤,如果我手動刪除數據庫中的外鍵,它就像一個魅力。

如何告訴NHibernate不要在這種情況下創建外鍵腳本?

回答

5

我認爲你應該在你的hbm.xml映射文件中使用foreign-key="none"屬性。

+0

太棒了!你指出我正確的方向!我找到了這個:http://stackoverflow.com/a/2827246/735864 – danyolgiax

+0

歡迎您。另請參閱'not-found =「ignore | exception」:指定如何處理引用缺失行的外鍵:忽略會將缺失的行視爲空關聯。 –