我正在尝试获取调查问题列表,其中问题的顺序存储在多对多关系的交集表中。 我的问题也被分成几个部分,除了排序之外,一切都有效。它不会抛出错误,但它不会对子项进行排序(问题)。
这是我的问题:
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
添加到列表前的部分,但在该上下文中,订单已丢失,我只剩下问题了。我无法将排序顺序放在问题表中,因为问题会被重复使用,并且可能有不同的排序顺序值。
答案 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()
};