【发布时间】:2015-10-25 14:37:48
【问题描述】:
我正在使用 NHibernate 和 C#。 我有两个实体,它们之间存在多对多关系。 当我删除父实体时,我只有它的 ID,我使用 hql 查询将其删除。
我的问题是它只删除了父实体而不删除它的关系。
我的实体如下所示:
public class Entity_A
{
public virtual int Code { get; set; }
public virtual int Id { get; set; }
public virtual ICollection<Entity_B> Entities_B { get; set; }
}
public class Entity_B
{
public virtual int Code { get; set; }
public virtual ICollection<Entity_A> Entities_A { get; set; }
}
映射
public class EntityAMap : ClassMap<Entity_A>
{
public EntityAMap()
{
Table("ENTITY_A");
Id(x=>x.Code).GeneratedBy.Identity();
Map(x=>x.Id).column("A_ID").Not.Nullable();
HasManyToMany(x->x.Entities_B)
.LazyLoad()
.Generic()
.PropertyRef("Id")
.ChildKeyColumn("B_CODE")
.ParentKeyColumn("A_ID")
.Table("ENTITY_A_TO_ENTITY_B")
.Cascade.All();
}
}
public class EntityBMap : ClassMap<Entity_B>
{
public EntityBMap()
{
Table("ENTITY_B");
Id(x=>x.Code).GeneratedBy.Identity();
HasManyToMany(x->x.Entities_A)
.Generic()
.ChildPropertyRef("Code")
.ChildKeyColumn("A_ID")
.ParentKeyColumn("B_CODE")
.Table("ENTITY_A_TO_ENTITY_B")
.Cascade.All()
.Inverse();
}
}
我的问题是,我应该改变什么,以便当我使用 NHibernate HQL 查询删除 Entity_A 时,它也会删除它与 Entity_B 的所有关系(来自表 ENTITY_A_TO_ENTITY_B)。
【问题讨论】:
标签: c# nhibernate many-to-many hql