2013-05-01 2 views
5

(웹 API 기반의) 웹 서비스에 OData를 사용하려고합니다. 불행히도 내 데이터 소스는 IQueryable이 아닙니다. 내 자신의 IQueryable을 구현하는 대신에 나는 거의 this blog post을 따랐다.OData with IQueryable

내 엔터티 데이터 모델 (EDM)을 얻는 방법을 모르겠다. 예를 들어 Designer에서 EDM을 모델링해야합니까? 아니면 EF에만 해당 되는가? 대신 "일반"클래스를 사용하고 관계 속성을 설정할 수 있습니까? 내 내부 데이터 구조를 드러내고 싶지 않아 내 EDM은 DTO와 비슷하다. ...

example에서 나는 OData 호환 HTTP를 얻기 위해 EntitySetController에서 파생 된 것으로 생각했다. 응답. IQueryable을 지원하지 않기 때문에 EntitySetController를 사용할 수 없다고 생각합니다. 어쨌든 적절한 대응을하기 위해 내가해야 할 일은 무엇입니까?

답변

4

직접 EDM 모델을 만들 수 있습니다. ODataConventionModelBuilder 클래스를 사용하여 EDM 모델을 만들 수 있습니다. 이 tutorial에는 몇 가지 샘플 코드가 있습니다. 또한 OData의 샘플을 here, 특히 ODataServiceSample 및 ODataCompositeKeySample에서 확인하십시오. 그들은 당신을 시작해야합니다.

또한 IQueryable이없는 경우 EntitySetController 대신 ODataController에서 파생 될 수 있습니다.