没有外键的NHibernate地图集合?
问题描述:
我一直未能找到这个问题的答案。没有外键的NHibernate地图集合?
假设你有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
表创建外键关系?
UPDATE
想通了解决方案 - 当映射由代码:
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));
})
);
难道你不希望约束或FKEY场?你如何建议ClassBTable中的行被识别为属于特定的ClassA而没有引用某种类型? – Rytmis 2012-07-12 10:22:20
为了澄清,'TableB'仍然会有'ClassAId'列,我很好。我只是不希望用一个外键约束来生成'ClassAId'列表。 – David 2012-07-12 10:27:21
[防止Nhibernate schemaexport生成外键约束有很多关系](http://support.microsoft.com/kb/2826725/prevent-nhibernate-schemaexport-from-generating-foreign-key-constraints-on-has -m) – Rytmis 2012-07-12 10:35:09