Wie doppelte Datensätze aus LINQ-Abfrage
Dies ist, wie meine Datenbank aussieht und mein Code zu entfernen, die alle Daten aus der Datenbank von Whid
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);
}
Aber wenn ich es will zeigen, in View bekommt Es zeigt doppelte Schlüssel (z. B. Schlüssel 1, Schlüssel 2, Schlüssel 3, Schlüssel 1, Schlüssel 2, Schlüssel 3 usw.) und Artikel (Artikel 1, Artikel 2, Artikel 1, Artikel 2 usw.) an. Wie kann ich Dubletten aus der Abfrage löschen?
Das ist mein Ansichtsmodell
public class WerehouseViewModel
{
public Werehouse Werehouse { get; set; }
public WerehouseKey WerehouseKey { get; set; }
public Item Item { get; set; }
}
Nun, Fügen Sie 'Werehouses' (1) zu 2 verschiedenen (vielen) Entitäten, so ist das Ergebnis ein kartesisches Produkt der verwandten "Werehäuser" und "Artikel" Aufzeichnungen. Möglicherweise müssen Sie das Ansichtsmodell ändern und Gruppen-Joins verwenden. –
Vielen Dank für Ihren Rat, können Sie mir bitte zeigen, wie würden Sie es bearbeiten? – Cezar
Ich würde "WerehouseViewModel" so etwas wie "Public Werehouse Werehouse" machen; einstellen; } öffentliche Liste WerehäuserKeys {bekommen; einstellen; } öffentliche Liste - Elemente {get; einstellen; } ' –