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

Posted

技术标签:

【中文标题】Linq2Sql Many:很多问题,你会怎么做?【英文标题】:Linq2Sql Many:Many question, How would you do this? 【发布时间】:2010-09-26 23:59:23 【问题描述】:

我知道 Linq2Sql 不支持 many:many,但我正在研究解决方法

我正在使用我的小 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 那么他们是如何做到的呢?你会怎么做?任何替代方法?查询当然应该是高效的。

【问题讨论】:

【参考方案1】:

这可能适用于您的情况;

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

【讨论】:

它有效。非常感谢。我看不到实际查询的样子。我想避免每个问题都触发 1 个查询来获取标签。 这是否两次往返数据库?我在这里也有同样的问题:***.com/questions/371279/… 不,到数据库只有一次往返。

以上是关于Linq2Sql Many:很多问题,你会怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

保存项目数据。你会怎么做? [关闭]

与你的领导意见不一致时你会怎么做?

当你做了微信小说系统老板,你会怎么做

Linq 2 Sql插入没有关系

mysql数据库Too many connections报错排查

Rails:has_many 通过关联 - 我做对了吗?