2010-01-29 4 views
3

아래 LINQ 문에서 내가 뭘 잘못하고 있는지 파악하려고합니다. 그것은 세 번째로 SELECT을 좋아하지 않습니다. 질문을 입력 할 때 Intelisense에서 tblAddresse.tblAdminCounty이 발견되었지만 그 후 SELECT를 입력하면 괴물이됩니다.LINQ 일대 다, 3 단계 딥 질문

tblAddresstblAdminCounty의 관련성과 관련이 있습니까? 나는 Intellisense에서 보여주는 사실이 tblAddress 일 때 그 진술을 자명하지만 분명히 알리지 않을 것이라고 생각했을 것이다.

내가 별도의 기능에 바로 CountyName를 조회 할 수 있었다면 그것과 같을 것이다 ->

var countyName = from adminCounty in context.tblAdminCounties 
       where adminCounty.CountyID == countyID 
       select adminCounty.CountyName; 

을 그리고 이것은이 사이트에 따라 크게 3 계층 접근 방식입니다 ->HERE

var query = from tblBusinesse in context.tblBusinesses 
      where tblBusinesse.BusinessID == businessID 
      select new 
      { 
       tblBusinesse.BusinessName, 
       tblBusinesse.ContactName, 
       tblBusinesse.EmailAddress, 
       Address = from tblAddresse in tblBusinesse.tblAddresses 
         select new 
         { 
          tblAddresse.AddressLine1, 
          tblAddresse.AddressLine2, 
          tblAddresse.AddressLine3, 
          tblAddresse.CityName, 
          County = from adminCounty in tblAddresse.tblAdminCounty 
            select new 
            { 
             adminCounty.CountyName 
            } 

         } 
      }; 
+0

@ 존 스키트 : 감사합니다, 나는 제대로 형식을 내 코드를 얻을 수가 없다. 나는 혼자서 많은 것을 설명해야한다고 생각합니다 ... –

+0

모든 것 앞에 "tbl"이 없다면 당신도 더 쉽게 삶을 찾을 수있을 것 같습니다 :) –

+0

@ 존 스키트 : :) 정말로! 다행히도이 경우에는 게시 된 샘플 코드에만 적용되고 내 프로젝트의 실제 코드베이스에는 포함되지 않습니다. –

답변

2

단일 주소에 여러 카운티가있는 것처럼 쿼리하려고합니다. tblAdminCounties이 아닌 tblAdminCounty이라고하는 사실이 그게 하나의 항목 일 뿐이라고 제안하지 않습니까? 이 변경

봅니다 :

County = from adminCounty in tblAddresse.tblAdminCounty 
     select new 
     { 
      adminCounty.CountyName 
     } 

는합니다 :

County = tblAddresse.tblAdminCounty 
+0

그게 고마워! 하위 쿼리가 의미하는 바를 완전히 이해하지 못했습니다. –