Я застрял преобразование под sql в запрос LINQ. В основном, я просто хочу, чтобы сгруппировать мой экзамен в моей столового сорта, то вычислять для общего числа прошедшего, не удалось, количество раз, принятых и скорость прохожденияпреобразовать SQL-запрос в LINQ/dot нотацию
SELECT testID,
(SELECT COUNT(testID) FROM tblGrade AS b
WHERE b.testID= a.testID AND b.Grade < 80) AS 'Failed',
(SELECT COUNT(testID) FROM tblGrade AS b
WHERE b.testID= a.testIDAND b.Grade >= 80) AS 'Passed',
--taken = failed + passed,
--passingrate = (passed/taken) * 100
FROM dbo.tblGrade AS a
GROUP BY testID
ORDER BY testID
EDIT: Мое решение ниже: Это работает, но я думаю, что его не лучший способ, особенно неудавшееся и переданное имущество.
var xx1 = _unitOfWork.tblGrade.GetAll().GroupBy(a => new { a.testID});
var xx2 = xx1.Select(b => new
{
testID= b.Key.testID,
failed = _unitOfWork.tblGrade.Query(filter: a => a.testID == b.Key.testID).Where(c => c.Grade < 80).Count(),
passed = _unitOfWork.tblGrade.Query(filter: a => a.testID == b.Key.testID).Where(c => c.Grade >= 80).Count(),
//taken = failed + passed,
//passingrate = (passed/taken) * 100
}).ToList();
спасибо. как я могу это использовать? – samantha07