0
我創建的OData 4控制器的Web API 2,看起來像這樣:OData控制器是否可以包含REST方法?
public class BooksController : ODataController
{
private ICollection<Book> books;
public BooksController()
{
this.books = new Collection<Book>()
{
new Book() { Id = "1", Title = "B1", Price = new Money(1, "EUR") },
new Book() { Id = "2", Title = "B2", Price = new Money(2, "EUR") }
};
}
[EnableQuery]
public IQueryable<Book> Get()
{
return this.books.AsQueryable();
}
}
問題是,當我想創建這樣一個規律的休息方法:
[HttpGet]
[Route(("api/books"))]
public IEnumerable<Book> GetAll([FromUri] PaginationDto paginationDto)
{
...
}
第一種方法是無障礙請求/odata/Books
。響應包含根據OData規範的數據。 第二種方法(應該)可以通過請求/api/books
訪問。響應應該包含PLU對象的標準JSON數組。
我怎麼能做到這一點?
要麼我能夠創建純OData控制器或常規REST控制器(從ApiController派生),不幸的是,當請求OData路由/odata/Books
時不符合OData標準。
您應該能夠創建另一個從ApiController繼承的控制器,以僅包含非OData操作。這是否解決了這個問題? – Scottie