나는 다음과 같은 SQL 쿼리가 있습니다LINQ 자기 참조 쿼리
public class ForumPost : PersistedObject
{
public int Views { get; set; }
public string Message { get; set; }
public string Subject { get; set; }
public ForumPost Parent { get; set; }
public UserAccount UserAccount { get; set; }
public IList<ForumPost> Replies { get; set; }
}
가 어떻게 LINQ에서 이러한 쿼리를 복제하는 것 :
select
p1.[id],
p1.[useraccountid],
p1.[subject],
p1.[message],
p1.[views],
p1.[parentid],
max(
case
when p2.[created] is null then p1.[created]
else p2.[created]
end
) as LastUpdate
from forumposts p1
left join
(
select
id, parentid, created
from
forumposts
) p2 on p2.parentid = p1.id
where
p1.[parentid] is null
group by
p1.[id],
p1.[useraccountid],
p1.[subject],
p1.[message],
p1.[views],
p1.[parentid]
order by LastUpdate desc
은 다음 클래스를 사용하여? 몇 가지 변형을 시도했지만 올바른 조인 구문을 얻을 수없는 것 같습니다. 이것은 단순히 LINQ에 대해 너무 복잡한 쿼리의 경우입니까? 그것은 어떻게 중첩 된 쿼리를 사용하여 수행 할 수 있습니까?
쿼리의 목적은 가장 최근에 업데이트 된 소식을 찾는 것입니다. 즉, 게시물에 답장하면 목록의 맨 위로 이동합니다. 응답은 자체 참조하는 ParentID 열에 의해 정의됩니다. 왼쪽의 syntaxt는 LINQ에 참여
정말 6 개월 된 게시물, 특히 자신의 질문에 답변하는 게시물을 누가 다운볼합니까? 적어도 어리석은 일을하도록 강요당한 이유에 대한 쪽지를 남겨주세요. – Chris