을 반환 나는 지금 내 WebApi의 하나로, OData 컨트롤러에서 나는 모든 제품 공급 업체에 반환 할 간단한 데이터 모델은 두 개의 엔티티 WebApi 중 하나로, OData는 복합 형
public class product
{
public int ID {get;set;}
public string Name {get;set;}
}
public class supplier
{
public int ID {get;set;}
public string Name {get;set;}
public IEnumerable<product> products {get;set;}
}
로 구성된 있습니다. 그러나 나는 단지 서글러를 반환하고 효과적으로 제품 정보를 제거하는 것으로이 일을 할 수없는 것 같습니다. 컨트롤러 메서드는 간단한 Get 및 GetEntityByKey입니다. 구성은 다음과 같습니다.
ODataModelBuilder modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<supplier>("supplier");
modelBuilder.EntitySet<product>("product");
구성 옵션이 있습니까?
Jen의 답변을 토대로 $ expand는 NuGet의 Web API OData의 첫 번째 릴리스에서 지원되지 않지만 현재 야간 빌드에서 사용할 수 있으며 다음 릴리스에서 사용할 수 있어야합니다. 나이트 클럽에 액세스하는 방법에 대한 자세한 내용은 다음 블로그 게시물을 참조하십시오. http://blogs.msdn.com/b/henrikn/archive/2012/06/01/using-nightly-asp-net-web-stack- nuget-packages-with-vs-2012-rc.aspx –
다시 연락해 주셔서 감사합니다. 최소한 나는 구성 옵션과 odata 자체가 아닌 추가 odata WebApi Get에서 리턴 된 Json에 포함하기보다는 추가 '제품'정보를 제거한다는 것을 알고 있습니다. 다음 버전의 출시일이 있습니까? –
@YoussefMoussaoui 야간 빌드를 얻었지만 간단한 예제가 작동하지 않습니다. 참고로 필라델피아 작곡가 http : // mywebsite : port/odata/suppler (1)? $ expand = products를 사용하고 있습니다. webapi 컨트롤러의 코드는 다음과 같습니다. protected override supplier GetEntityByKey (int key) { supplier s = new supplier() {Name = "Test", ID = 1}; s.products = new List() {신제품() {ID = 1, Name = "P1"}, 신제품() {Name = "P2", ID = 2}}; return s; } ' –