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:很多问题,你会怎么做?的主要内容,如果未能解决你的问题,请参考以下文章