2011-01-06 4 views
2

PostgreSQL 용 Devart EF-4 공급자를 사용하고 있습니다.Entity Framework에서 SQL 함수 사용 선택

내 db 테이블 중 하나에는 the_geom이라는 열이 있는데,이 열은 다각형을 지닌 PostGis Geometry 유형 열입니다. 요컨대 PostGis는 자체 바이너리 형식을 사용하여 기하학 값을 저장하므로 응용 프로그램에서 사용할 수 있으려면 기하학의 표준화 된 이진 표현 인 Well-Known-Binary (WKB)로 변환해야합니다. 이

select asbinary(the_geom) from mytable 

마지막 질문으로 선택하여 표준 SQL에서 아주 쉽게 달성 할 수있는이입니다 가 어떻게, 엔티티 프레임 워크에 열을 the_geom 선택 asbinary() 함수를 사용하여 지정합니까?

답변

5

System.Data.Objects.SqlClient 네임 스페이스의 SqlFunctions 클래스의 Linq querys에서 사용할 수있는 SQL Server 기능이 많이 있습니다.

Postgre를위한 Linq Provider 라이브러리에서 sth를 찾으십시오. 값이 asbinary(the_geom) 인 계산 된 열을 추가하고 해당 열을 EF에 매핑 할 수없는 경우를 찾으십시오. 당신은 디 컴파일 코드를 보면

당신은

public static class SqlFunctions 
{ 
    // Methods 
    [EdmFunction("SqlServer", "STR")] 
    public static string StringConvert(double? number) 
    { 
    } 
} 
+0

내가 그런 아무것도 찾을 수 없습니다, 그런 STH를 작성할 수 있습니다. 나는 Well-Known-Text (WKT)와 WKB 둘 다로 값을 저장함으로써 나의 이슈를 해결했다. 그런 다음 WKT가 업데이트 될 때마다 트리거를 사용하여 WKB 열을 업데이트했습니다. 그것은 불필요하지만 작업이 완료됩니다. –

관련 문제