Получение дубликатов записей в индексном представлении в MVC C#
Я новичок в C# и унаследовал веб-приложение, которое теперь я несу полную ответственность за исправление и улучшение. Я только что создал контроллер и представление с помощью мастера VS "контроллер MVC 5 с представлениями, используя Entity Framework". Я использую код по умолчанию, который сгенерировал VS.
Я также заметил, что запись все еще появляется, даже если идентификатор тот же, что и в представлении SQL.
Любая помощь будет очень признательна!
@foreach (var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.JudgmentID) </td> <td> @Html.DisplayFor(modelItem => item.LoanID) </td> <td> @Html.DisplayFor(modelItem => item.JudgmentAmount) </td> <td> @Html.DisplayFor(modelItem => item.JudgmentDate) </td> <td> @Html.ActionLink("Edit", "Edit", new { id = item.ID }) | @Html.ActionLink("Details", "Details", new { id = item.ID }) | @Html.ActionLink("Delete", "Delete", new { id = item.ID }) </td> </tr> }
1050001010 1000.00 7/5/2016 12:00:00 AM Edit | Details | Delete 1050001010 1000.00 7/5/2016 12:00:00 AM Edit | Details | Delete
Вторая запись должна быть другой.
Я получаю эту ошибку в журнале.
SOURCE:System.Core TRACE: at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable1 source) at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.b__2[TResult](IEnumerable1 sequence) at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable`1 query, Expression queryRoot) at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[TResult](Expression expression)
Что я уже пробовал:
I have tried to start over and build everything a second time.
Я запустил сеанс отладки, и в контроллере он дублируется, поэтому index.chtml показывает только то, что получает контроллер.
F-ES Sitecore
Вы не опубликовали код для контроллера, поэтому невозможно сказать, что происходит или что делает ваш код. Вы получаете эту ошибку, когда ожидаете ноль или один элемент в коллекции, но есть два или более.
Member 14557066
Извините, я сделал это на нескольких сайтах и забыл, на каких именно я это добавил.
публичный индекс ActionResult(int? id)
{
if (id == null)
{
возврат нового HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Видовой мешок.Идентификатор = идентификатор;
return View(db.JDs.Where(x=>x.ID ==id).Список());
}
F-ES Sitecore
У вас есть несколько записей с этим идентификатором, поэтому вы получаете эту ошибку. Если данные неверны и идентификатор должен быть уникальным, то удалите плохую строку и выясните, как она туда попала. Если возможно иметь несколько идентификаторов, то ваша система, вероятно, каким-то образом испорчена.
Member 14557066
Ладно, может быть, я делаю это неправильно. Я просто пытаюсь перечислить все записи для LNID, LNID-это не PK второй таблицы в представлении SQL JDID is и LN.ID является первичным для первой таблицы. Мое представление SQL выглядит примерно так
выберите LN.ИД, ИД.ДЖИД, ДЖЕЙ ДИ.JDAMT, ДЖЕЙ ДИ.JDDATE от
LNs
внутреннее соединение на Джей Ди Джей Ди.LNID = ЛН.LNID
Предполагается, что у него есть много записей LNID, только одна запись ID, но идентификатор, передаваемый в ActionResult, является идентификатором, а не LNID. Как я могу получить этот результат? Извините, что я не создал этот беспорядок, я просто должен поддерживать его и улучшать. Спасибо за всю помощь!