2012-09-14 125 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”:指定如何处理引用缺失行的外键:忽略会将缺失的行视为空关联。 –