Entfernen Sie Doppelte basierend auf den Spalte-Wert-linq
ich habe viele zu viele Beziehung zwischen Mitarbeiter und Gruppe. folgende linq-Anweisung
int[] GroupIDs = {6,7};
var result = from g in umGroups
join empGroup in umEmployeeGroups on g.GroupID equals empGroup.GroupID
where GroupIDs.Contains(g.GroupID)
select new { GrpId = g.GroupID,EmployeeID = empGroup.EmployeeID };
gibt groupid und die employeeid-Spalte. und das Ergebnis ist
GrpId | EmployeeID
6 | 18
6 | 20
7 | 19
7 | 20
Ich muss entfernen Sie die Zeilen, für die die Personal-Nr. ist die Wiederholung z.B. eines der Zeile, die mit employeeid= 20
Dank
- Was würde es entfernen Sie die Letzte Zeile nicht als das mit GrpId=6?
- ok, ich muss mit deutlichen Employeeids jeder kann entfernt werden
Du musst angemeldet sein, um einen Kommentar abzugeben.
Okay, wenn es dir egal ist, welcher Mitarbeiter entfernt werden, Sie könnten versuchen, so etwas wie:
Du noch nicht angegeben, ob dies im LINQ to SQL, LINQ to Objects, oder sonst etwas... ich weiß nicht, was die SQL-übersetzung dafür wäre. Wenn man sich mit einer relativ kleinen Menge von Daten, die Sie konnte immer erzwingen, das Letzte bit in-process:
Zu diesem Punkt könnte man tatsächlich verwenden MoreLINQ, die hat eine handliche
DistinctBy
Methode:Except
oderWhere
.