2013-07-24 1 views
-7

영어로이 C#을 깨뜨릴 수 있습니까? 어떻게 든 거기에 조인을 추가 할 수 있습니까?번역 해주세요 C#에서 SQL로 SQL으로 변환

return db.Providers.Where(n => n.LastName.StartsWith(prefixText)).OrderBy(
     n=>n.LastName).Select(n => n.LastName).Take(count).ToArray(); 

감사합니다.

+1

-1 질문과 목표가 너무 명확하지 않은 경우. –

답변

1

SQL 쿼리는 아마 같은 것입니다. 나는 그들에게 LastName 열을 기준으로 알파벳 순으로 정렬하려면, 나는 첫 번째 행 (즉, count 경우 (50)와 같은, 당신은 50 행까지 얻을 것이라고했다)

물론, 당신은 JOIN을 할 수 원하는 . 당신은 당신의 Where 표현식 내 다른 테이블을 참조 할 수 있습니다 :

db.Providers.Where(n => n.ProviderGroup.ADgroup == 'Active Dir Group') 

그리고 프레임 워크는 자동으로 는 모델이 테이블 사이에 필요한 관계를 제공합니다 제공, 당신을 위해ADgroup에 참여합니다.

+1

에서 'select *'가 아니라 'Select LastName'에 ADGroups 광고를 조인하는 것과 같은 것입니다. –

+0

@JoeEnos - 네, 잘 잡으세요. –

+0

db.providers에서 다른 테이블로 조인을 추가 할 수 있습니까? 그게 C#에서 닮았 을까? – Sj14420

0

변수 prefixText의 텍스트로 시작하는 성 (姓)이 알파벳 순서로 오름차순으로 표시되는 모든 공급자의 성의 x 번을 가져옵니다. 의미

SELECT LastName FROM Providers 
WHERE LastName LIKE 'PrefixText%' 
ORDER BY LastName 
LIMIT count; -- This may be TOP in MS SQL or ROWNUM in Oracle 

:

LastName 열 (즉 변수가 포함되어 무엇이든) PrefixText로 시작하는 테이블 Providers에서 나에게 모든 행을 부여

+0

고마워요! db.providers에서 다른 테이블로 조인을 추가 할 수 있습니까? 그게 어떻게 생겼어? – Sj14420

+0

@ Sj14420, 어떤 종류의 가입을 원하십니까? 내부, 왼쪽, 오른쪽, 또는 전체? – Raptor

+0

내부. ad.providerid = prov.providerid – Sj14420

0

이렇게하면 count 성을 포함하는 배열이 알파벳순으로 증가하고 prefixText으로 시작하는 배열이 반환됩니다.

0

이 해당 SQL 코드입니다 : 당신이 여기 join 필요합니까 왜

select top @count LastName from Providers 
where LastName like '[email protected]+%' 
order by LastName 

?

업데이트 : OP 코멘트 당

:

내가 제한 아약스 자동 연장의 결과에 대한 join 필요 ...

당신은 필요가 없습니다 Ajax Auto Extender에서 결과를 제한하기위한 조인은 지금 당장하시는 것처럼 SQL의 top 절 또는 LINQ의 Take 메서드를 사용하십시오 :

db.Providers.Where(n => n.LastName.StartsWith(prefixText)).OrderBy( n=>n.LastName).Select(n => n.LastName).Take(count).ToArray();

+0

Ajax 자동 확장기의 결과를 제한하기 위해 조인이 필요합니다 ... – Sj14420

+0

내 업데이트 된 답변을 확인하십시오. 일반적으로 쿼리에서 제한 연산을 수행 할 수 있습니다 .. –

+0

좋아,하지만 내가 제한해야하는 것이 성보다 다른 테이블에 있다면? – Sj14420