父/子表没有在LINQ中引用或我错了吗?

时间:2010-06-29 13:43:32

标签: sql linq tree parent

我有一个类别表“类别”[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表行。

1 个答案:

答案 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;