OData – Get Started 搭建单侧环境()-其他
OData – Get Started 搭建单侧环境()
前言
之前写过 EF Core – Get Started 搭建单侧环境, 这篇补上一个 WebApi + EF Core + OData
创建项目
dotnet new webapi -o EfCoreODataWebApi
是 new webapi 哦, 不是 webapp
Install NuGet
dotnet add package Microsoft.AspNetCore.OData
EF Core 的我就不写了
Files
ProductController.cs
using System.Net.Mime;
using EfCoreODataWebApi.Entity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OData.Query;
using Microsoft.AspNetCore.OData.Routing.Attributes;
namespace EfCoreODataWebApi.Controllers;
[ApiController]
[Route("api")]
public class ProductController : ControllerBase
{
private readonly ApplicationDbContext _db;
public ProductController(
ApplicationDbContext db
)
{
_db = db;
}
[ODataAttributeRouting]
[EnableQuery]
[HttpGet("products")]
[Produces(MediaTypeNames.Application.Json)]
[ProducesResponseType(StatusCodes.Status200OK)]
public ActionResult<IEnumerable<Product>> GetProducts()
{
return Ok(_db.Products);
}
}
Program.cs
var modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<Product>("products");
builder.Services.AddControllers().AddOData(
options => options.Select().Filter().OrderBy().Expand().Count().SetMaxTop(null).AddRouteComponents(
"api",
modelBuilder.GetEdmModel()
)
);
它只需要添加 Services 就可以了.
访问 API
https://192.168.1.152:44300/api/products?$filter=Id%20ge%203
————————
前言
之前写过 EF Core – Get Started 搭建单侧环境, 这篇补上一个 WebApi + EF Core + OData
创建项目
dotnet new webapi -o EfCoreODataWebApi
是 new webapi 哦, 不是 webapp
Install NuGet
dotnet add package Microsoft.AspNetCore.OData
EF Core 的我就不写了
Files
ProductController.cs
using System.Net.Mime;
using EfCoreODataWebApi.Entity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.OData.Query;
using Microsoft.AspNetCore.OData.Routing.Attributes;
namespace EfCoreODataWebApi.Controllers;
[ApiController]
[Route("api")]
public class ProductController : ControllerBase
{
private readonly ApplicationDbContext _db;
public ProductController(
ApplicationDbContext db
)
{
_db = db;
}
[ODataAttributeRouting]
[EnableQuery]
[HttpGet("products")]
[Produces(MediaTypeNames.Application.Json)]
[ProducesResponseType(StatusCodes.Status200OK)]
public ActionResult<IEnumerable<Product>> GetProducts()
{
return Ok(_db.Products);
}
}
Program.cs
var modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<Product>("products");
builder.Services.AddControllers().AddOData(
options => options.Select().Filter().OrderBy().Expand().Count().SetMaxTop(null).AddRouteComponents(
"api",
modelBuilder.GetEdmModel()
)
);
它只需要添加 Services 就可以了.
访问 API
https://192.168.1.152:44300/api/products?$filter=Id%20ge%203