我有一个类别表“类别”[ID,标题]和父/子表“CategoryParent”[ID,CategoryID,ParentCategoryID],其中多对多树由指示的类别的父表示使用连接表中的ParentCategoryID字段。
我认为这将是一个简单的结构,用于检索根类别(在连接表中具有NULL作为ParentCategoryID值的类别条目)和子类别(通过父ID)。
但是,我没有尝试编写LINQ2SQL语句来通过连接表中的父ID获取Category对象列表,这些尝试产生了任何可编译的内容。
我会发布一些代码,但它们都不是(a)完整或(b)合理的 - 无论如何都是。
应该怎么做呢?
我的联接表如下所示:
CategoryParent
---
ParentCategoryID [int] (PK)
CategoryID [int] FK
CategoryParentID [int] FK
我的数据(类别)表如下所示:
Category
---
CategoryID [int] PK
Title [nvarchar]
有两种关系:
Category.CategoryID 1->* CategoryParent.CategoryID
Category.CategoryID 1->* CategoryParent.ParentCategoryID
我想提供NULL或CategoryID,并取回所有将其作为父级的Category表行。
答案 0 :(得分:0)
好吧,看起来我应该做的是使用LINQ进行相当基本的连接,而不是依赖于上下文类中的连接对象。类似的东西:
var props = from i in context.Prices
join e in context.PricingEntities on i.EntityID equals e.EntityID
join l in context.PricingEntityProperties on e.EntityID equals l.EntityID
join p in context.PricingProperties on l.PropertyID equals p.PropertyID
where i.InstanceID == instanceId
select p;