Entity Framework 변환 문제: Double.Parse를 변환할 수 없습니다
LINQ to Entities로 작업할 때 모든 메서드가 그렇지는 않다는 점에 유의하는 것이 중요합니다. LINQ to Objects에서 지원되는 내용은 SQL 쿼리로 직접 변환될 수 있습니다. 일반적인 오류 중 하나는 LINQ to Entities 문에서 Double.Parse()를 사용할 수 없다는 것입니다.
Double.Parse() 문제 해결
이 문제를 해결하려면 , *.edmx에 정의된 함수를 사용하여 구문 분석을 수행하고 이를 유효한 SQL로 변환하는 사용자 정의 방법을 정의할 수 있습니다. file.
예:
SQL 변환 정의:
*. edmx 파일에 다음 함수를 추가하세요. 정의:
<Function Name="ParseDouble" ReturnType="Edm.Double"> <Parameter Name="stringvalue" Type="Edm.String"></Parameter> <DefiningExpression> cast(stringvalue as Edm.Double) </DefiningExpression> </Function>
코드에서 사용자 정의 메서드 만들기:
ObjectContext 부분 클래스(일반적으로 EDMX에서 생성됨)에 다음을 추가합니다. 다음 메서드:
public static double ParseDouble(string stringvalue) { return Double.Parse(stringvalue); }
이 메서드는 LINQ 쿼리 중에 스텁 역할을 하며 EDMX에 정의된 SQL CAST 문으로 변환됩니다.
예(사용자 지정 방법 적용):
LINQ 문에서 다음을 바꿉니다. 사용자 정의 메서드를 활용하고 다음으로 변환할 수 있도록 YourObjectContext.ParseDouble()을 포함하는 Double.Parse()의 모든 인스턴스 SQL.
추가 고려 사항:
특정 컨텍스트에서 Entity Framework가 지원하지 않는 경우 Math.Round()에도 비슷한 접근 방식이 필요할 수 있다는 점을 명심하세요. EDM 정식 함수 목록을 사용하여 정의할 적절한 SQL 함수를 결정하세요.
위 내용은 Entity Framework가 Double.Parse()를 번역할 수 없는 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!