在一个查询linq中加载父表和子表到实体

时间:2010-05-19 15:19:29

标签: asp.net-mvc linq linq-to-entities

我在Linq中有以下表/类结构。

Books
{
 bookId,
 Title
}

Tags
{
  TagId
  Tag
}

BooksTags
{
 BookId
 TagId
}

现在我需要写一个查询,它给我这样的结果

Class Result
{
 bookId,
 Title,
 Tags
}

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

由于

Parminder

1 个答案:

答案 0 :(得分:2)

(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())
           }