코드가 2 ~ 4 자로 시작하고 그 다음에 숫자가있는 공백이있을 수있는 열이있는 테이블이 있습니다. 예 : KR123 또는 KS 23 또는 K23456. SQL Server 2008의 다음 SQL 코드는 숫자를 반환합니다 : 이것은 SQL에서 잘 작동하지만 함께 일하는 프로그래머 중 하나가 같은 일을 Entites에 LINQ를 사용하고 싶어Linq to 엔티티 및 컬럼 반전
Select CONVERT(int, Reverse(LEFT(REVERSE(codefield),PATINDEX('%[a-z]%', REVERSE(codefield)) - 1)))
From Table1
. 나는 첫 번째 행에서 반전 된 필드의 인덱스 값을 얻을 수 있다면 바로 볼 수 VB.Net에서이 코드를 시도 :
Dim theResult = theContext.Table1.select(function(y)
System.Data.Objects.SQLClient.SQLFunctions.PatIndex("%[a-z]%", y.codefield.Reverse)
).FirstOrDefault
그것은 잘 컴파일하지만 실행시이 나에게 오류를 제공합니다 : LINQ를에 엔터티가 'System.Collections.Generic.IEnumerable 1[System.Char] Reverse[Char](System.Collections.Generic.IEnumerable
1 [System.Char]'메서드를 인식하지 못하고이 메서드를 저장소 식으로 변환 할 수 없습니다.
. 제가 제거하면, 작동하지만 코드가 올바로 작동하도록 열 데이터를 역전시킬 수 있어야합니다.
LINQ to Entities를 사용하여 원래 선택을 수행하는 방법을 알아낼 수 있습니까?
감사합니다, NCGrimbo
'theContext.ExecuteStoreQuery'를 사용하는 것이 가장 쉬운 경우 일 수 있습니다. http://blogs.microsoft.co.il/blogs/gilf/archive/ 2009/11/25/execute-t-sql-statements-in-entity-framework-4.aspx – mellamokb