Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何使EntitySetController对我的路线可见?_Asp.net_Asp.net Mvc - Fatal编程技术网

Asp.net 如何使EntitySetController对我的路线可见?

Asp.net 如何使EntitySetController对我的路线可见?,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我创建了一个EntitySetController,如下所示: public class OrdersController : EntitySetController<Order,Guid> { private readonly PizzaCompanyEntities _context = Factories.DataFactory.GetPizzaContext(); protected override void Dispose(bool disposi

我创建了一个EntitySetController,如下所示:

   public class OrdersController : EntitySetController<Order,Guid>
{
    private readonly PizzaCompanyEntities _context = Factories.DataFactory.GetPizzaContext();

    protected override void Dispose(bool disposing)
    {
        if (disposing)
        {
            _context.Dispose();
        }
        base.Dispose(disposing);
    }

    public override IQueryable<Order> Get()
    {
        return _context.Orders;
    }

    protected override Order GetEntityByKey(Guid key)
    {
        var result = _context.Orders.FirstOrDefault(o => o.Id == key);
        if (result == null)
        {
            throw new HttpResponseException(HttpStatusCode.NotFound);
        }
        return result;
    }
}
但是当我在
http://localhost:29064/odata/Orders
我收到一个404和一条消息“路径/odata/Orders的控制器未找到或未实现IController

我无法找出我在注册路由和运行控制器时遗漏了什么。我从头开始做了一个类似的应用程序,没有遇到过这种问题


如何使OData路由正常工作?

Wow,说到延迟!无论如何。我认为您缺少WebApiConfig类的Register方法中的config.EnableQuery()调用(假设V3,对于V4,它已更改为AddODataQueryFilter())。
public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapODataRoute("PizzaApi", "odata", GetImplicitEdm());
    }

    private static IEdmModel GetImplicitEdm()
    {
        var builder = new ODataConventionModelBuilder();
        builder.EntitySet<Order>("Orders");
        builder.EntitySet<Pizza>("Pizzas");
        builder.EntitySet<Pizzas_To_Orders>("PizzasToOrders");
        builder.EntitySet<Size>("Sizes");
        builder.EntitySet<Status>("Statuses");
        builder.EntitySet<Pizzas_To_Toppings>("PizzasToToppings");

        return builder.GetEdmModel();
    }
}
    public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        WebApiConfig.Register(GlobalConfiguration.Configuration);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
}