Linq父母/子女关系 - 没有孩子的智力感

时间:2011-05-25 10:16:37

标签: c# linq linq-to-sql

我有父/子表关系

ParentTable
  ParentID Int, Identity
  ParentDescription VarChar

ChildTable
  ParentID Int
  ChildCode VarChar
  ChildDescription VarChar

ParentTable.ParentID is a PK
ChildTable.ParentID is a FK to ParentTable.ParentID
ChildTable.ParentID + ChildTable.ChildCode is a PK

我已将上述内容添加为linq数据引用和&这种关系在设计师中展示。但是,当我尝试使用子表列时,它们不会显示在IDE intellisense

var x = from y in db.ParentTable
                select new
                {
                    y.ParentDescription,
                    code = y.ChildTable....(Only the lamda functions are shown in intellisense here)
                };

儿童桌子没有智能感知器。如果我输入.ChildDescription我收到错误“不包含'ChildDescription'的定义”

我大概错过了一些东西。

1 个答案:

答案 0 :(得分:1)

这是因为它是一对多关系,而您的ChildTable属性是所有相关孩子的集合 - 它不是单个孩子。如果您想选择ParentDescriptionChildDescription对请尝试:

var x = from y in db.ParentTable
        from x in y.ChildTable
        select new
            {
                y.ParentDescription,
                code = x.ChildDescription
            };

编辑:

您也可以执行此操作以获取ParentDescription以及所有相关ChildDescriptions的集合:

var x = from y in db.ParentTable
        select new
            {
                y.ParentDescription,
                codes = y.ChildTable.Select(x => x.ChildDescription)
            };