Hier ist die SQL-Anweisung:In EF suche ich nach Duplikaten und mache eine selbstreferenzierende Abfrage, wie schreibe ich diese Abfrage?
SELECT f1.*
FROM [File] f1
where 1 < (select count(*) from [File] f2 where f1.FileName = f2.FileName)
order by f1.FileName
Dies ist eine ziemlich einfache Abfrage in SQL zu tun, aber ich bin nicht sicher, wie es in EF zu tun. Der nächstgelegene ich auf die Antwort gekommen ist diese (gibt mir die PK und zählen), aber ich möchte die vollständige Datei Datensatz zurück:
from f1 in File
join f2 in File on f1.FileName equals f2.FileName
group f1 by f1.FileId into c
where c.Count() > 1
select new { FileId = c.Key, number = c.Count() }
Danke! Das sieht nach der besten Passform aus. LinqPad sagt es übersetzt zu: - Region Parameter DECLARE @@ p0 Int = 1 - EndRegion SELECT [t0]. [FileId], [t0]. [Dateiname], [t0]. [DirectoryDefaultStructureId], [ t0]. [ProjektId], [t0]. [AssetId], [t0]. [BusinessUnitId], [t0]. [UploadedOn], [t0]. [ErstellerUserId] FROM [Datei] AS [t0] WHERE (( SELECT COUNT (*) FROM [Datei] AS [t1] WHERE [t0]. [Dateiname] = [t1]. [Dateiname] ))> @@ p0 –