NHibernate使用外键关联一对一映射

NHibernate使用外键关联一对一映射,nhibernate,nhibernate-mapping,fluent-nhibernate-mapping,Nhibernate,Nhibernate Mapping,Fluent Nhibernate Mapping,我有两张桌子: TableA : Id (identity) IdTableB(Foreign Key) Nullable ... TableB : Id (identity) ... 我做了这个映射: A类(表A) 在IdTableB上用null更新de tableA,但它不会从tableB中删除ClassB 首先,这是我的映射好吗?有更好的解决办法吗 第二,当我明确地从关系中删除时,如何删除ClassB对象 感谢这里试图解释的: 多对一不支持级联全

我有两张桌子:

TableA :
    Id (identity)
    IdTableB(Foreign Key) Nullable
    ...

TableB :
    Id (identity)
    ...
我做了这个映射:

A类(表A)

在IdTableB上用null更新de tableA,但它不会从tableB中删除ClassB

首先,这是我的映射好吗?有更好的解决办法吗

第二,当我明确地从关系中删除时,如何删除ClassB对象

感谢这里试图解释的:

多对一
不支持级联
全部删除孤立项
。这种设置可以删除不再被引用的实体

换句话说,使
多对一
引用为空-不会触发删除

所以,映射是可以的,但上面所需的功能还没有到位。解决方案是显式删除引用会话。删除(classA.ClassB)

...
m.ManyToOne<ClassB>(x => x.ClassB, map =>
{
     map.Column("IdTableB");
     map.Cascade(Cascade.All);
     map.Unique(true);
});
...
...
m.OneToOne<ClassA>(x => x.ClassA, map =>
{
     map.PropertyReference(x => x.ClassB);
     map.Constrained(false);
});   
...
ClassA classA = session.Load(1);
classA.ClassB = null;
session.commit();