2010-07-07 2 views
0

에 LINQ에 붙어. 그들은 무슨 일이 일어나고 있는지 설명하지 않고, 가상의 상황에서해야 할 일을 설명합니다. 어떤 도움이나 설명이 많이 감사 할 것입니다.내가 LINQ이 번역 할 수없는 것 SQL 쿼리

어떻게 시작 했습니까? JoinedFiles.DefaultIfEmpty()의 파일에서 마지막 줄을 컴파일 할 수 없습니다. 'SelectMany'라는 통화에서 형식 유추가 실패했습니다. 왜 그렇게 복잡한가요? = (

var x = from h in db.Histories 
    join prof in db.profiles on h.username equals prof.username 
    join files in db.NeebitFiles on h.fileid equals files.filename into JoinedFiles 
    from files in JoinedFiles.DefaultIfEmpty() 
    ...? 

답변

1

. 내가

(from a in db.A 
where ... 
select new 
{ 
    a.whatever, 
    (from b in db.B where B.AID = A.AID select b.value).First(), //first for inner join 
(from c in db.C where C.AID = A.AID select c.value).FirstOrDefault() //firstordefault for outer joins 
} 
+0

나는 이것을 사용했다. 내가 원하는 부분이 아니었지만, 나는 그것을 훨씬 더 좋아한다. 에있다. – Jason

1

그것은 무료 아니지만, 그것은 비용이 아니다. 그것은 Linq에 거의 모든 T-SQL 문을 변환합니다. 자신에게 Linqer (www.sqltolinq.com)의 사본을 가져옵니다. 그리고 당신은 30 일이 그래, 나도 많은 행운을 가진 적이 없었습니다 재판.

+0

을 조인을 위해 나는 크게이 감사하지만, 이해의 내 문제를 해결하지 않습니다. 감사합니다 그래도, 필자는 이것을 시도 할 것 +1 – Jason

관련 문제