【发布时间】:2008-12-16 15:03:40
【问题描述】:
我使用 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;}
}
非常感谢 :o)
【问题讨论】:
标签: c# nhibernate