2013-03-05 1 views
2

to-do list sample은 BreezeController를 사용하여 API를 제공합니다. EFContextProviderMetadata 문자열 및 방법을 SaveChanges()과 같이 제공하는 데 사용됩니다.BreezeController를 사용해야합니까?

문제 : 바로 DbContext과 이야기합니다. 나는 여전히 도메인 모델 대신에 내 자신의 뷰 모델을 반환 할 수있는 유연성을 원합니다.

일반 ApiController에서 쉽게 자신의보기 모델을 반환 할 수 있습니다. 나는 일반 ApiController로 설정 한 경우 API를 호출 할 때, breeze 우리가 BreezeController를 사용하는 경우

[HttpGet] 
public string Metadata() { 
    return _contextProvider.Metadata(); 
} 

에 의해 공급되는, Metadata를 요청합니다.

내 질문은 BreezeController을 사용해야합니까? 어떻게 그것을 사용하여 사용자 정의보기 모델을 반환합니까? 또는 유연성을 위해 일반 ApiController을 사용하는 경우 Metadata을 어떻게 제공 할 수 있습니까?

답변

3

"BreezeController"는 단순히 'BreezeController'속성이있는 모든 API 컨트롤러입니다.

"BreezeController"는 .NET WebApi가 OData "구문"을 통한 쿼리 필터링 및 정렬을 지원하고 엔터티 그래프 및 형식 ID에 대한 json 직렬화 지원을 지원하는 데 도움이되는 .NET 특성입니다. 유형 아이디는 중요하므로 breeze는 entityManager 내의 엔티티를 추적하고 쿼리 결과를 병합하고 릴레이션 속성을 업데이트 할 수 있습니다.

'메타 데이터'방법은 쿼리에서 반환 할 수있는 유형에 대한 메타 데이터를 서버에서 제공하려는 경우에만 필요합니다. 이 메타 데이터는 '클라이언트 측'으로 제공되어이 방법을 구현할 필요가 없습니다. breeze 샘플 zip의 NoDb 샘플에는 이에 대한 예제가 들어 있습니다.

뷰 모델 대신 도메인 모델을 반환해야한다는 바람이 없습니다. 어느 쪽이든 작동합니다. 사용하는 모든 모델에 의해 반환 된 유형에 대한 메타 데이터를 제공하면됩니다. 또한 임의의 클라이언트 측 정보를 기반으로 사용자 정의 서버 측 로직을 수행하려는 경우 EntityQuery 'withParameters'메소드를 살펴보십시오.