不使用linq查询获取组中的输出

时间:2014-07-30 07:29:22

标签: linq

我的表是:

Student_answer_Master:

Stud_ans_id       QuestionId    OptionId     iscorrect
1                    25              1          1

2                    26              1          0

3                    27              2          1

4                    27              3          1

5                    27              4          1

6                    28              1          1

8                    29              1          0

9                    29              2          1

10                   29              3          1

(我的选择是单选和多选(复选框))。

现在我想要的只是那些正确的问题的总数。

1 - 表示正确

0表示不正确。

我想要输出: 3 (对于 questionid 25,27,28

这是我的linq查询:

 var data = (from temp in context.Student_Answer_Master
                        where temp.isCorrect == '1'
                        group temp by temp.Question_Id into g
                        select new {g.Key}).Count();

但是这里的数量是0。

任何人都可以告诉我我的查询有什么问题???

1 个答案:

答案 0 :(得分:1)

试试这个应该有效。

 var data = (from temp in s
                       group temp by temp.Question_Id into g
                       select new { questionid = g.Key, minIscorrect = g.Min(x => x.isCorrect) }).Where(y => y.minIscorrect != 0).Count();

在您的查询中有两件事我看起来不对。

  • 比较一个int和一个char temp.isCorrect =='1'如果你使它成为temp.isCorrect == 1,你仍然会得到4作为计数因为你正在消除那个有错误答案的行问题编号29.

  • 一旦你找到了这个小组,你需要检查这个问题是否有错误的答案 如果是,则消除然后再计算