分组与子排序

时间:2017-10-23 20:39:02

标签: c# entity-framework linq

我正在尝试获取调查问题列表,其中问题的顺序存储在多对多关系的交集表中。 我的问题也被分成几个部分,除了排序之外,一切都有效。它不会抛出错误,但它不会对子项进行排序(问题)。

这是我的问题:

from surveyQuestion in Context.SurveyQuestions
join question in Context.Questions
on surveyQuestion.Question_ID equals question.Question_ID
where surveyQuestion.Survey_ID == surveyId
orderby surveyQuestion.SORT_ORDER
group question by surveyQuestion.SECTION into section
select new SurveySection
{
    SurveyId = surveyId,
    SectionId = section.Key,
    Questions = section.ToList()
};

我已尝试将.OrderBy添加到列表前的部分,但在该上下文中,订单已丢失,我只剩下问题了。我无法将排序顺序放在问题表中,因为问题会被重复使用,并且可能有不同的排序顺序值。

2 个答案:

答案 0 :(得分:0)

我找到了一种方法让它工作,但似乎它可能是错误的方式。我创建了一个新的匿名对象,包括我的sort和子对象,然后对其进行排序,然后将子对象选择为列表。

现在我的查询如下:

 - debug: var=ec2

有更好的方法吗?

答案 1 :(得分:0)

尝试

from surveyQuestion in Context.SurveyQuestions
join question in Context.Questions
on surveyQuestion.Question_ID equals question.Question_ID
where surveyQuestion.Survey_ID == surveyId
orderby surveyQuestion.Question_ID,surveyQuestion.SORT_ORDER
group question by surveyQuestion.SECTION into section
select new SurveySection
{
    SurveyId = surveyId,
    SectionId = section.Key,
    Questions = section.ToList()
};