У меня есть отношения многие ко многим, использующие NHibernate.
Существует ли более простой способ удаления ассоциации категорий из всех продуктов без создания класса для таблицы соединений?
Я бы хотел, чтобы SQL выглядел как
DELETE FROM ProductCategories WHERE CategoryId = 123
и вот код, который мы используем для удаления ассоциаций
DetachedCriteria fetchCriteria = DetachedCriteria.For<Product>()
.CreateAlias("Categories", "categories")
.Add(Restrictions.Eq("categories.Id", category.Id));
ICollection<Product> products = productRepo.FindAll(fetchCriteria);
foreach(var product in products)
{
product.Categories.Remove(category);
productRepo.Save(product);
}
Продукт имеет набор категорий
public class Product{
public ISet<Category> Categories
{
get;set;
}
}
Категория имеет свойство Id Guid
public class Category {
public Guid Id {get;set;}
public string Name {get;set;}
}
Большое спасибо: о)