Как удалить повторяющиеся записи из LINQ запроса
Это как моя база данных выглядит и мой код, который получает все данные из базы данных по юркнуть
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var viewModel =
(from Wh in db.Werehouses
join WhK in db.WerehouseKeys on Wh.WhID equals WhK.WhID
join Itm in db.Items on Wh.WhID equals Itm.WhID
where Wh.WhID == id
select new WerehouseViewModel { Werehouse = Wh, WerehouseKey = WhK, Item = Itm });
if (viewModel == null)
{
return HttpNotFound();
}
return View(viewModel);
}
Но когда я хочу, чтобы показать его в View он показывает повторяющиеся Ключи (например, Ключ 1, Ключ 2, Ключ 3, Ключ 1, Ключ 2, Ключ 3 и т. д.) и Элементы (Пункт 1, Пункт 2, Пункт 1, Пункт 2 и т. д.). Как удалить дубликаты из запроса?
Это мой ViewModel
public class WerehouseViewModel
{
public Werehouse Werehouse { get; set; }
public WerehouseKey WerehouseKey { get; set; }
public Item Item { get; set; }
}
Ну, вы присоединяетесь 'Werehouses' (один) до 2 различных (много) объектов, поэтому результат является декартовым произведением соответствующих записей WerehouseKeys и 'Items'. Возможно, вам придется рассмотреть возможность изменения модели вашего представления и использования групповых объединений. –
Хорошо спасибо за совет, не могли бы вы показать мне, как бы вы его отредактировали? – Cezar
Я бы сделал 'WerehouseViewModel' чем-то вроде этого' public Werehouse Werehouse {get; задавать; } public List WerehouseKeys {get; задавать; } public List - Элементы {get; задавать; } ' –