0
比方说,我们有一个对象模型是这样的:NHibernate的 - 标准来搜索分层数据有效
public class Category
{
public virtual Category Parent { get; set; }
public virtual string Name { get; set; }
public virtual ISet<Category> Children { get; protected set; }
}
public class Product
{
public virtual string Name { get; set; }
public virtual Category Category { get; set; }
public virtual decimal Price { get; set; }
}
在数据库方面,双方的关系将通过许多一对多关系表来实现的,所以数据模式将是这样的:
Category
=================
Id int PK
Name varchar(50)
Parent_Id int FK
Product
=================
Id int PK
Name varchar(50)
Price money
ProductToCategory
=================
Product_Id int PK
Category_Id int PK
现在,让我们在类别树假设是一个分支,看起来像这样:
- 食品
- 螺母
- 腰果
- 花生
- 山核桃
- 面包
- 黑麦
- 小麦
- 白色
- 螺母
假设我们的产品与分配的可能只有一个子类,是有可能构建一个Criteria
,将单一击中返回所有产品的Food
类别的数据库和不使用CTE?
或者,由于不会有丰富的类别,最好是将完整的类别映射加载到内存中并构建标准,以便搜索产品where Category_Id in (...)
,记忆树?