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

Linq2Sql很多人:很多问题,你会怎么做?

  •  7
  • terjetyl  · 技术社区  · 16 年前

    我知道很多:很多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{ ... }
    }
    

    问题是我应该如何填写Tag集合。 我发现这不可能在一个查询中完成,所以我将其分为2个查询,1个用于获取问题,1个获取标签,然后尝试连接它们。 我知道很多:很多都在Entity框架中得到支持,那么他们是如何做到的呢?你会怎么做?有其他方法吗?当然,查询应该是高效的。

    1 回复  |  直到 16 年前
        1
  •  4
  •   Ali Ersöz    16 年前

    这可能适用于你的情况;

    from q in Questions
    select new ListQuestion 
    { 
      Tags = q.QuestionTags.Select(qt => qt.Tag),
      QuestionId = q.ID,
      Title = q.Title
    }