C# 无外键的NHibernate映射引用

C# 无外键的NHibernate映射引用,c#,nhibernate,nhibernate-mapping,C#,Nhibernate,Nhibernate Mapping,我在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(); C

我在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();
ClassA
mapping.Id(x=>x.Id).Column(“rowid”).GeneratedBy.Identity().Unique();
B类
mapping.Id(x=>x.Id).Column(“rowid”).GeneratedBy.Identity().Unique();
mapping.References(x=>x.ClassA).Nullable();
当NHibernate生成数据库模式时,它会在这些表之间创建一个外键,即使我在映射声明中指定了“Nullable”属性。很明显,如果我试图保存我的对象,我会得到一个外键约束错误,如果我手动从数据库中删除外键,它就像一个符咒


在这种情况下,如何告诉NHibernate不要创建外键脚本

我认为您应该在
hbm.xml
映射文件中使用
foreign key=“none”
属性。

太好了!你给我指明了正确的方向!我发现了这一点:不客气。同时查看
notfound=“ignore | exception”
:指定如何处理引用缺失行的外键:ignore将缺失行视为空关联。