2012-12-26 3 views
1

Doctrine에서 ResultSetMapping과 같은 임의의 sql에서 매핑 된 결과를 Entity Framework에서 사용하는 방법이 있는지 궁금합니다. 매핑을 수행하는 구성 클래스를 만들 수 있지만 클래스를 엔터티 형식으로 등록해야한다는 것을 알고 있습니다. 나는 EF의 나머지 부분없이 EF의 구체화 요소 (Object Services)를 활용하려고합니다. 때때로 나는 비밀 이하의 의미있는 열 이름을 가진 시저의 결과를 가지고 있지만,보다 의미있는 속성 이름을 가진 클래스에 매핑 할 필요가 있지만, PROC 정의, 예를 들어, 변경 할 수있는 권한이 없습니다 :EF 사용자 지정 결과 집합 매핑

exec dbo.getRecDetail @var 

반환 열 :

를 같은 클래스에 매핑해야
sd, ed, nm, .... 

:

class Obj{ 
     public DateTime StartDate; //sd 
     public DateTime EndDate; //ed 
     public String Name; //nm 
     .... 
    } 

답변

0

당신이 당신의를 가져올 수있는 데이터베이스 첫 번째 방법으로 .EDMX 파일 (디자이너)를 사용하는 경우 (마법사의 저장 프로 시저 선택) 및 map their results to complex types.

실제로 임의의 SQL 쿼리에서도 작동하지만 쿼리가 데이터베이스에 자동으로 가져올 수는 없습니다 (데이터베이스에 존재하지 않기 때문에). EDMX 파일에서 저장소 모델을 수동으로 수정해야합니다 (XML - Function and CommandText elements 설명서 참조). 일단 그렇게하면 사용자 정의 쿼리를 삭제할 수 있으므로 더 이상 디자이너의 데이터베이스 기능에서 업데이트를 사용할 수 없습니다.

코드를 처음 사용하는 경우 현재 저장 프로 시저 또는 사용자 지정 쿼리의 결과를 매핑하는 옵션이 없습니다. 클래스가 결과 세트의 열과 정확히 동일한 이름을 갖는 속성을 필요로하는 자동 매핑 만 사용할 수 있습니다.

+0

Ladislav, EDMX 파일 작업을 피하려고합니다. 코드를 먼저 수행하고 EF와 같은 라이브러리에 일부 매핑 메타를 전달하는 옵션이 있어야한다고 생각했습니다. 나는 지금 당신이 제안한 것처럼 복잡한 유형으로해야한다고 생각합니다. Thnx 매우 – Quaspam