내가 LINQ 쿼리에 다음 SQL 문을 변환하고 싶습니다 :LINQ 쿼리는
select COUNT(*), itemid, globalid, title, preview, previewimage, previewimage_alt, link
from (
select distinct Id, itemid, globalid, title, preview, previewimage, previewimage_alt,
(select top 1 link from LikeCounter where GlobalId=x.GlobalId) as link
from [LikeCounter] x
where PortalId=1 and LanguageId=1
) as t
GROUP BY itemid, globalid, title, preview, previewimage, previewimage_alt, link
ORDER BY COUNT(*) desc
쿼리는 "좋아하고 개체의 기록을 보유하고보기 이상 ". 개체를 여러 위치에 게시 할 수 있고보기가 특정 위치에 대한 필터링을 허용하도록 설정 되었기 때문에보기 횟수를 찾기 위해 레코드를 그룹화하기 전에 별개가 필요합니다 (링크가 추가 쿼리되는 이유입니다). "열).
하나의 linq 문에서 중첩 된 SELECT 문이 가능합니까? ,
(from x in LikeCounter
where x.PortalId==1 && x.LanguageId==1
select new {x.Id, x.ItemId, x.GlobalId, x.LanguageId, x.Title, x.Preview, x.PreviewImage_alt,
Morelink=(from y in LikeCounter
where y.GlobalId==x.GlobalId
select y.Morelink).FirstOrDefault()
}).Distinct()
그러나 서로 다른 레코드의 그룹과이를 확장 할 수있는 방법이 그 데이터베이스에 한 쿼리의 결과 :
는 내부 질의는 문제가 없다? 모든 입력에 미리
감사합니다 ...
니나
편집 :
이다음 쿼리 거의 내가 원하는 반환 -하지만 SQL 서버에 여러 쿼리를 생성합니다
(from y in
((from x in LikeCounter
where x.PortalId==1 && x.LanguageId==1
select new {x.Id, x.ItemId, x.GlobalId, x.LanguageId, x.Title, x.Preview, x.PreviewImage_alt,
Link=(from y in Xparo_LikeCounter
where y.GlobalId==x.GlobalId
select y.Link).FirstOrDefault()
}).Distinct())
group y by y.GlobalId into grp
select new {Data=grp, Count= grp.Count()}).OrderByDescending (x => x.Count)
내가 이런 것들에 대한 LINQPad.exe를 사용하여 ... –
그래서 내가 ... 내가 거의 작동하는 무언가를 발견 할 걸리지 만 너무 많은 SQL 쿼리를 생성 얼마나 많은 쿼리 아무 생각이 없습니다. . – Nina