7

我知道很多:Linq2Sql 不支持很多,但我正在研究一种解决方法

我正在使用我的小 SO 克隆,我有一个带有问题的表和一个带有标签的表和一个链接表 QuestionTag,所以我在问题和标签之间有一个经典的多:多关系。

为了在首页显示问题列表,我有这个类,我想从 Linq2Sql 查询中填写

public class ListQuestion
{
   public int QuestionID { get; set; }
   public string Title{ get; set; }
   public IEnumerable<Tag> Tags { get; set; }
}


public IEnumerable<ListQuestion> GetQuestions()
{
   from q in Questions
   .................
   select new ListQuestion{ ... }
}

问题是我应该如何填写标签集合。我发现这不可能在 1 个单一查询中完成,因此我将其分为 2 个查询,1 个用于获取问题,1 个用于获取标签,然后尝试加入它们。我知道 Entity 框架支持 many:many 那么他们是如何做到的呢?你会怎么做?任何替代方法?查询当然应该是有效的。

4

1 回答 1

4

这可能适用于您的情况;

from q in Questions
select new ListQuestion 
{ 
  Tags = q.QuestionTags.Select(qt => qt.Tag),
  QuestionId = q.ID,
  Title = q.Title
}
于 2008-12-16T08:31:46.520 回答