这是SQL语句:
SELECT f1.*
FROM [File] f1
where 1 < (select count(*) from [File] f2 where f1.FileName = f2.FileName)
order by f1.FileName
在SQL中这是一个相当简单的查询,但我不确定如何在EF中执行此操作。最接近答案的是这个(给我PK和计数),但我想要恢复完整的文件记录:
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() }
答案 0 :(得分:1)
您可以使用group join:
from f1 in File
join f2 in File on f1.FileName equals f2.FileName into g
where g.Count() > 1
select f1
答案 1 :(得分:0)
我通常使用带有lambda语法的EF,但是你不能只投影对象吗?
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 c