添加 OData 控制器

控制器是处理 HTTP 请求的类。你为 OData 服务中的每个实体集创建一个单独的控制器。在本教程中,你将为 Product 实体创建一个控制器。

在 Solution Explorer 中,右键单击 Controllers 文件夹,然后选择 Add > Class 。将类命名为 ProductsController。

OData v3 本教程的版本使用 Add Controller Scaffolding。目前,OData v4 没有 Scaffolding。

用以下内容替换 ProductsController.cs 中的样板代码。

using ProductService.Models;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.OData;
namespace ProductService.Controllers
{
    public class ProductsController : ODataController
    {
        ProductsContext db = new ProductsContext();
        private bool ProductExists(int key)
        {
            return db.Products.Any(p => p.Id == key);
        } 
        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}

控制器使用 ProductsContext 类使用 EF 访问数据库。请注意,控制器会重写 Dispose 方法以处置 ProductsContext

这是控制器的起点。接下来,我们将为所有 CRUD 操作添加方法。