Ответ 1
Эта страница объясняет, как создать oDataController.
1) Чтобы установить пакет в проект, откройте диспетчер консоли и введите следующее:
Install-Package Microsoft.AspNet.Odata
2). Откройте ваш метод WebApiConfig.cs
и внутри Register
, добавьте этот код:
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<FileDto>("File");
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: null,
model: builder.GetEdmModel());
3) Создайте свой oDataController, заменив yourDataSourceHere
, чтобы использовать свой собственный класс:
public class FileController : ODataController
{
[EnableQuery]
public IQueryable<FileDto> Get()
{
return yourDataSourceHere.Get();
}
[EnableQuery]
public SingleResult<FileDto> Get([FromODataUri] int key)
{
IQueryable<FileDto> result = yourDataSourceHere.Get().Where(p => p.Id == key);
return SingleResult.Create(result);
}
public IHttpActionResult Post(FileDto File)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
yourDataSourceHere.Add(product);
return Created(File);
}
}
OBS: Чтобы проверить это решение, я изменил свойство FileDto
Content
. В частности, это тип! От Stream
до byte[]
. Отправил контент как строку Base64.