私は多対多の関係を持っています:
製品には多くのカテゴリがあり、カテゴリには多くの製品があります。
私が持っていると言う
Shopping Category
Food Category
Product A - Shopping Category, Food Category
Product B - Shopping Category
今私は削除しShopping Category
ます。Product A
参照を削除してShopping Category
、Product B
完全に削除したい。
私は次のようになります:
Product A - Food Category.
nhibernate でこれを行うにはどうすればよいですか (流暢な nhibernate を使用しています)。
Cascade を使用しようとしましDeleteOrphan
たAllDeleteOrphan
が、それを行ってショッピングを削除すると、商品 A と B の両方が削除されます。
public class CategoryMapping : ClassMap<Category>
{
public CategoryMapping()
{
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.Name).Not.Nullable().NvarcharWithMaxSize();
HasManyToMany(x => x.Products).Cascade.DeleteOrphan();
}
}
public class ProductMapping : ClassMap<Product>
{
public ProductMapping()
{
Id(x => x.Id).GeneratedBy.GuidComb();
Map(x => x.Name).Not.Nullable().NvarcharWithMaxSize();
HasManyToMany(x => x.Categories);
}
}
unitOfWork.BeginTransaction();
Category category =session.Load<Category>(id);
session.Delete(category);
unitOfWork.Commit();