Фильтр не работает надлежащим образом - при соединении внутренних таблиц - PullRequest
1 голос
/ 08 февраля 2020

У меня есть список студентов с оценками мест, которые можно отсортировать или отфильтровать. Я заметил (визуально), что при фильтрации оценки не перемещаются вместе с соответствующим учеником, а вместо этого имеют статус c.

Пример-

Перед фильтром:

Student A  |11
Student AA |10
Student B  |09
Student BB |08

После фильтрации по «B» ученикам:

Student B  |11
Student BB |10

Я предполагаю, что это происходит из-за того, что они либо неверны, либо отсутствуют логи c, что говорит коду, что количество учеников было изменено. Но Я не уверен, что мне нужно добавить в код, чтобы решить эту проблему, и я надеюсь, что кто-то здесь сможет указать мне правильное направление.

Код бритвы:

@for (int i = 0; i < Model.Students.Count; i++)
                        {
                            <tr>
                                <td>@Model.Students[i].LastName</td>
                                <td>@Model.Students[i].FirstName</td>
                                <td>
                                    @* Ept score form group*@
                                    <div class="form-group">
                                        <input type="hidden" asp-for="@Model.Students[i].Sid" />
                                        <label asp-for="@Model.Students[i].Score.EptScore">Score</label>
                                        <input type="number" data-internalid="@i" asp-for="@Model.Students[i].Score.EptScore" class="form-control limited-width" aria-describedby="helpBlock1" />
                                        <span id="helpBlock1" asp-validation-for="@Model.Students[i].Score.EptScore" class="help-block"></span>
                                    </div>
                                </td>   
                            </tr>

Logi c Код:

IQueryable<Student> StudentsIQ = (from s in _context.Students
                                             where s.StuType == StudentType.New 
                                             && s.YearQuarterEnrolled == quar.Id 
                                             orderby s.LastName, s.FirstName      //default ordering
                                             select s).Include(st => st.Score);

            // Based on input search filters, filter student data
            if (!String.IsNullOrEmpty(LnameSearch))
            {
                StudentsIQ = StudentsIQ.Where(s => s.LastName.ToLower().StartsWith(LnameSearch.ToLower()));
                queryParams.Add("LnameSearch", LnameSearch);
            }
            if (!String.IsNullOrEmpty(SidSearch))
            {
                StudentsIQ = StudentsIQ.Where(s => s.Sid.StartsWith(SidSearch));
                queryParams.Add("SidSearch", SidSearch);
            }
            if (!String.IsNullOrEmpty(FnameSearch))
            {
                StudentsIQ = StudentsIQ.Where(s => s.FirstName.ToLower().StartsWith(FnameSearch.ToLower()));
                queryParams.Add("FnameSearch", FnameSearch);
            }
    ...
...