2012-06-15 1 views
3

저는 linqpad와 C#을 처음 사용합니다. odata에서 "ic"으로 시작하는 ID 목록을 가져오고 싶습니다. SqlMethods.like를 시도하고이 오류가 발생했습니다. 다음은LinqPad와 같은 연산자 오류

'이름'SqlMethods '는 현재 컨텍스트에 존재하지 않는 것은 "

from id in Products 

where SqlMethods.Like(id.ProductId, "IC%") 

select id 

이 도와주세요 쿼리를합니다. 솔루션을 찾을 수 없습니다.

+0

언어가 C# 문으로 설정되어 있습니까? 나는 (비슷한 문법으로) 비슷한 것을 실행했고, 그것은 나를 위해 잘 작동한다. –

+0

아니요, C# Expression을 사용하고 있습니다. C# 문을 사용할 때 코드를 "var query = from id"에서 "SqlMethods.Like (id.ProductId,"IC % ") ID를 선택하고 Console.WriteLine (쿼리);" 여전히 동일한 오류가 발생합니다 – Swapnil

+0

예제 코드에서와 똑같은 ** SqlMethods ** 철자가 확실합니까? 그리고 그것은 완전한 이름 즉 System.Data.Linq.SqlClient.SqlMethods를 사용하면 어떤 차이가 있습니까? – sgmoore

답변

2

OData는 Like 연산자를 지원하지 않습니다. 위의 내용을 컴파일해도 문제가 해결되지 않습니다.

from id in Products 
where id.ProductId.Contains("IC") 
select id; 

이 실제로 LIKE 문을 생성합니다

from id in Products 
where id.ProductId.StartsWith("IC") 
select id; 
+0

나는 이것을 시도해 보았습니다. 그것은 부분적으로 작동합니다. 내가 IC-100을 입력하면 데이터를 가져 오지만 IC를 입력하면 오류가 발생합니다. – Swapnil

+0

사용중인 코드와 호출 스택과 함께 오류를 게시 할 수 있습니까? –

+0

도와 주셔서 감사합니다 .SqlMethods를 사용하지 않습니다. 사용하고 있습니다. 내 목적으로 시작합니다. – Swapnil

2

또 다른 옵션은이 방법이 들어 있습니다 사용하는 것입니다 : 당신은 당신이 StartsWith 방법을 사용할 수 있습니다 IC와 ID의 시작의 모든 제품을 찾으려면 SQL에서.