Что-то не так с моим запросом LINQ to Entities - PullRequest
0 голосов
/ 30 января 2012

У меня сейчас есть запрос LINQ:

public List<EventSchool> GetEventSchools(int eventID)
    {
        var eventSchools = db.EventSchools
            .Include("Organisation")
            .Where(e => e.EventID == eventID)
            .ToList();

        foreach (var ev in eventSchools)
        {
            if (db.EventSchoolKeyStages.Where(e => e.EventSchoolID == ev.EventSchoolID).Count() > 0)
            {
                int ks = db.EventSchoolKeyStages
                .Where(e => ev.EventSchoolID == ev.EventSchoolID)
                .Sum(e => e.Males + e.Females);

                ev.StudentNumbers = ks;
            }
        }

        return eventSchools;
    }

Когда я проверяю EventSchools, номера учеников для ВСЕХ предметов в списке показываются как первые итоги.

Например, если у меня есть 3 элемента в списке:

Item 1 - Males = 10, Females = 10
Item 2 - Males = 1, Females = 2
Item 3 - Males = 200, Females = 500

ВСЕ предметы имеют StudentNumbers 20, а не:

Item 1 - 20
Item 2 - 3
Item 3 - 700

Не уверен, что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 30 января 2012

У вас есть опечатка здесь:

.Where(e => ev.EventSchoolID == ev.EventSchoolID)

Эта лямбда всегда будет верна.Я подозреваю, что вы имели в виду

.Where(e => e.EventSchoolID == ev.EventSchoolID)
            ^^^

, который отличается в указанном месте.

2 голосов
/ 30 января 2012

У вас есть ошибка в вашем запросе:

.Where(e => ev.EventSchoolID == ev.EventSchoolID)

Должно быть:

. Where(e => e.EventSchoolID == ev.EventSchoolID)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...