您好我在我的asp.net mvc应用程序中使用Linq来根据在答案表中插入的ID来解答问题。
我有这样的表数据:
在上图中你可以看到ScheduleId在两个表中有第一个表用于向scheduleid分配问题,第二个表用于存储带有scheduleid的问题的答案。
现在我要做的就是从问题表中安排问题,并得到该问题的答案,就像答案一样,有多少明星客户给出了答案。像5星,4星,3星等......等等......
所以在第二个表格中,我给出了QuestionId 1的一个例子,其中有4个答案给出了scheduleid 7543。
我想以这样的方式获取数据以获得问题列表,并给出答案的数量,例如问题1将有4个答案
Q1 5(2次) Q1 2(1次) Q1 2(3次)
像这样,所以我创建了一个类:public class Question
{
public int QuestionId { get; set; }
public string QuestionText { get; set; }
public List<KeyValuePair<string,string>> AnswerList { get; set; }
}
以上类
我写了这个查询:
List<Question> questionList = (from queans in Context.Get<GuestRatingAnswers>()
join regque in Context.Get<GuestRankingQuestions>()
on queans.QuestionId equals regque.Id
orderby queans.QuestionId, queans.AddedOn descending
group new { queans, regque } by new
{
queans.QuestionId,
regque.Question,
regque.AddedOn
}
into g
select new Question
{
QuestionId = g.Key.QuestionId,
QuestionText = g.Key.Question
//AnswerList = new List<KeyValuePair<string, string>>()
}).OrderBy(n => n.QuestionId).ToList();
foreach (var item in questionList)
{
var detail = (from queans in Context.Get<GuestRatingAnswers>()
.GroupBy(n => n.Answer).
Select(grp => new KeyValuePair<string, string>(grp.Key.ToString(), grp.Count().ToString()))).ToList();
var details = (from queans in Context.Get<GuestRatingAnswers>()
orderby queans.Answer descending
group new { queans } by new
{
queans.Answer
}
into g
select new KeyValuePair<string, string>(g.Key.Answer.ToString(), g.Key.Answer.ToString()));
}
在上面的查询中,每个我想要答案的答案作为keyvaluepair也是不完整的帮助来完成那个或者我有什么错误请提。
与var一起使用的查询作为详细信息和细节都是不同的,只是我给出了测试。
提前致谢。 :)