DefiningQuery 요소(SSDL)
SSDL(저장소 스키마 정의 언어)의 DefiningQuery 요소를 사용하면 기본 데이터베이스에서 직접 SQL 문을 실행할 수 있습니다. DefiningQuery 요소는 일반적으로 데이터베이스 뷰처럼 사용되지만 이 뷰는 데이터베이스 대신 저장소 모델에서 정의됩니다. DefiningQuery 요소에 정의된 뷰는 EntitySetMapping 요소를 통해 개념적 모델의 엔터티 형식에 매핑될 수 있습니다. 이러한 매핑은 읽기 전용입니다. 자세한 내용은 How to: Add a Defining Query를 참조하십시오.
다음 SSDL 구문에서는 EntitySet 다음에 뷰를 검색하는 데 사용되는 쿼리가 포함된 DefiningQuery 요소가 있는 선언을 보여 줍니다.
<Schema>
<EntitySet Name="Tables" EntityType="Self.STable">
<DefiningQuery>
SELECT TABLE_CATALOG,
'test' as TABLE_SCHEMA,
TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
</DefiningQuery>
</EntitySet>
</Schema>
Entity Framework 에서 저장 프로시저를 사용하여 뷰를 통한 읽기/쓰기 시나리오를 가능하게 할 수 있습니다. 저장 프로시저를 사용하여 데이터를 검색하고 변경 내용을 처리하기 위한 기본 테이블로 데이터 소스 뷰나 Entity SQL 뷰를 사용할 수 있습니다.
DefiningQuery 요소를 사용하여 Microsoft SQL Server Compact 3.5를 대상으로 지정할 수 있습니다. SQL Server Compact 3.5에서는 저장 프로시저를 지원하지 않지만 DefiningQuery 요소를 사용하여 비슷한 기능을 구현할 수 있습니다. 이 요소는 프로그래밍 언어에 사용되는 데이터 형식과 데이터 소스의 데이터 형식 간에 불일치를 해결하기 위한 저장 프로시저를 만드는 데도 유용하게 사용할 수 있습니다. 예를 들어 데이터를 삭제하는 저장 프로시저와 같이 특정 매개 변수 집합을 받은 다음 다른 매개 변수 집합을 사용하여 저장 프로시저를 호출하는 DefiningQuery를 작성할 수 있습니다.