代码之家  ›  专栏  ›  技术社区  ›  Parminder

在一个查询linq to entity中加载父表和子表

  •  1
  • Parminder  · 技术社区  · 15 年前

    我在linqto实体中有一个如下的表/类结构。

    Books
    {
     bookId,
     Title
    }
    
    Tags
    {
      TagId
      Tag
    }
    
    BooksTags
    {
     BookId
     TagId
    }
    

    Class Result
    {
     bookId,
     Title,
     Tags
    }
    

    通过连接所有三个表,标签应该是由逗号分隔的文本。 如何完成。

    帕明德

    1 回复  |  直到 15 年前
        1
  •  2
  •   Stephan    15 年前
    (from b in books
    select new { BookId = b.BookId,
                 Title = b.Title,
                 Tags = bookTag.Where(bt => bt.BookId == b.BookId).Select(bt => tags.Single(t => t.TagId == bt.TagId).TagTitle)
               }).ToList().Select( t => new 
               { BookId = b.BookId,
                 Title = b.Title,
                 Tags = string.Join(", ", t.Tags.ToArray())
               }