我无法找到这个问题的答案。
说你有ClassA
:
public class ClassA {
public Guid Id { get; set; }
public IList<ClassB> { get; set; }
}
ClassA
嵌套了ClassB
个对象的集合:
public class ClassB {
public Guid Id { get; set; }
public string SomeProperty { get; set;}
}
有没有办法使用NHibernate将这些对象映射到表,生成模式但是没有为ClassB
表创建外键关系?
更新
计算解决方案 - 按代码映射时:
Bag<ClassA>(x => x.ClassB,
collectionMapping => {
collectionMapping.Table("ClassB");
collectionMapping.Cascade(Cascade.All);
collectionMapping.Key(key => {
key.Column("ClassAId");
key.ForeignKey("none");
});
collectionMapping.Lazy(CollectionLazy.NoLazy);
},
mapping => mapping.OneToMany(x => {
x.Class(typeof(ClassB));
})
);
答案 0 :(得分:4)
我认为如果将集合映射设置为inverse="true"
,则架构生成工具不会创建FK。
编辑: 正如评论指出的那样(不知道那个!)与xml映射可能有效:
<many-to-one name="Bar" foreign-key="none" />