2011-04-01 5 views
3

다음 SQL 쿼리가 있고이를 LINQ로 변환하고 싶습니다. 나는 하위 쿼리 또는 LINQ include 구문을 사용하려는 join를 사용하지 않으 :이 SQL 쿼리를 LINQ로 변환하려면 어떻게합니까

SELECT Count(*) AS CountOfRecs 
FROM tblAcc a 
INNER JOIN tblAccOwner o ON 
    a.[Creditor Registry ID] = o.[Registry ID] AND 
    a.[Account No] = a.[Account No] 
WHERE 
    (a.[Account Owner ID] = 731752693037116688) AND 
    a.[Account Type] NOT IN ('CA00', 'CA01', 'CA03', 'CA04', 'CA02', 
          'PA00', 'PA01', 'PA02', 'PA03', 'PA04')) AND 
    (DATEDIFF(mm, a.[State Change Date], GETDATE()) <= 4 OR 
    a.[State Change Date] IS NULL AND 
    (a.[Account Type] IN ('OD','CL00','PL00') OR a.[Account Type] LIKE '%hala%')) 
+1

나머지 프로젝트를 보내지 마시고 우리는 그렇게 할 수 있습니다! 어떻게하면 노력할 수 있을까요? 달성하려는 것은 무엇입니까? 테이블은 어떻게 생겼지? 무엇을 시도하고 작동하지 않는가? 방법에 대한 귀하의 SQL 서식을 좀 더 ... –

+0

안녕 Geoff : 나는 Linq에 새로운입니다. 나는 두 테이블을 조인하고 있습니다. 나는 SQL 전문가이며 LINQ를 사용하여 몇 번이나이 포럼에 온 이유를 알고 있습니다. 나는 나의 모든 프로젝트를 여기에 게시하는 것을 의미하지 않았다. – DotnetSparrow

+0

충분하지만 Geoff의 요점 중 일부는 여전히 유효합니다. 무엇을 시도 했습니까? 그리고 예상했던 결과가 나오지 않았습니까? 코드를 게시 할 수 있습니까? – Bazzz

답변

3

당신은 LinqPad 또는 Linqer 사용할 수 있습니다. LinqPad에서 변환하려고하지만 데이터베이스가 있어야합니다.

+0

@ sample : LinqPad를 가지고 있지만 Linq에 SQL을 변환하는 옵션이 보이지 않습니다. – DotnetSparrow

+0

@DotnetSparrow이 [link] (http://i51.tinypic.com/2heajup.png)를 확인하십시오. – Damb

+0

쿼리의 '번역'을 가져와야합니다. (그것은 linq 쿼리에 대해이 작품처럼) SQL과 람다 .. 동일한 동작이 다른 방향으로 작동해야합니다 (SQL> linq). 필요에 따라 작동하지 않더라도 Linqer를 사용할 수 있습니다. Linqer는 실제로 SQL을 LINQ 도구로 사용합니다. 그래서 나는 왜 내가 이것에 downvotes을 받고 있는지 이해하지 못한다. – Damb

3

Linq로 변환하는 것은 꽤 쉬워야합니다. 동일한 검색어를 원한다면 join을 사용해야합니다. 당신이 정말로 당신이 SQL의 전문가이기 때문에 다음 하위 쿼리를 사용해야하는 경우

먼저 귀하의 Linq2Sql 모델을 작성하고이 개 테이블을 가져, 다음 쿼리는, 일반적인 구조

var query = from acc in db.Accs 
    join accOwner in db.AccOwners on {acc.regId, acc.AccountNo} equals {accOwner.regId, accOwner.AccountNo} 
    where // your where conditions 
      // - these should all convert quite easily 
      // - just translate them one by one 
    select acc; 

var count = query.Count(); 

이있을 것이다 먼저 SQL로 쿼리를 작성한 다음 테스트하고, Linq로 쿼리를 변환 한 다음 테스트하십시오. 라인 단위로 변환 한 다음에는 Intellisense가 훌륭하다는 것을 알게 될 것입니다.


도 실현하십시오 당신이 그때는 아마 어쨌든 생성 된 SQL 내에서 join을 사용하는 .Include()를 사용하는 경우.

+0

감사하지만 하위 쿼리를 사용해야하거나 조인을 포함하지 않아도됩니다. – DotnetSparrow

+0

이 경우에는 조언을 업데이트했습니다. 먼저 SQL 전문가가 SQL에서 비 조인 형식으로 쿼리를 번역한다는 사실을 먼저 사용하십시오. – Stuart

관련 문제