2016-10-24 1 views
0

WebAPI (엔터티 프레임 워크 모델)에서 OData를 사용하고 있습니다. 그러나 NominalAccounts라는 엔티티/컨트롤러가 있는데 컨트롤러는 'NominalAccountsController'이고 DB 엔티티는 'NominalAccount'이고 OData 경로는 이고은 'nominal_accounts'(즉 http://test/api/nominal_accounts)입니다. 그래서 아래 코드는 Startup 클래스에 있습니다 :웹 API/엔터티 프레임 워크가있는 OData - 엔터티의 컨트롤러 이름을 정의하십시오.

builder.EntitySet<NominalAccount>("nominal_accounts"); 

그러나이 코드는 밑줄이있는 컨트롤러를 찾기 때문에 실패한 것 같습니다. 엔터티 집합에 대해 어떤 컨트롤러를 찾아야하는지 정의 할 수있는 방법이 있습니까?

답변

0

설정이 어떻게되는지는 모르겠지만 각 엔티티에 대해 하나의 controller이 있습니다. 과 같이

using System.Web.Http; 
using System.Web.OData; 
using System.Web.OData.Query; 
using System.Web.OData.Routing; 

[ODataRoutePrefix("nominal_accounts")] 
public class NominalAccountsController : ODataController 
{ 
    [EnableQuery] 
    public virtual IQueryable<NominalAccount> Get(ODataQueryOptions<NominalAccount> q) 
    { 
     return _your_odata_source; 
    } 
} 

그리고 내 설정 : 내 컨트롤러가 특정 엔드 포인트를하기 위해 그리고 단순히 ODataRoutePrefix -prefix를 사용

IEdmModel model = GenerateModel(); 
config.MapODataServiceRoute(routeName: "ODataRoute", routePrefix: "odata", model: model); 
관련 문제