odata路由不按预期工作

时间:2015-06-23 16:56:53

标签: asp.net-mvc asp.net-web-api odata

这是我第一个使用asp.net MVC的OData应用程序,我无法使其工作。我需要从Summary返回一个SummaryController对象,但遇到问题。

路由配置 -

public static IEdmModel CreateEdmModel()
{
    ODataConventionModelBuilder modelBuilder = new ODataConventionModelBuilder();
    modelBuilder.EntitySet<Summary>("Summary");
    return modelBuilder.GetEdmModel();
}

public static void Register(HttpConfiguration config)
{
    config.Routes.MapODataRoute("OData", "odata", CreateEdmModel());
    config.EnableQuerySupport();    
    config.EnableSystemDiagnosticsTracing();
}

控制器和动作方法 -

public class SummaryController : ODataController
{
        public Summary Get()
        {
             //....
             return someObj;
        }
}

不起作用的路线 -

/odata/Summary

任何人都可以帮助我了解如何使路由工作?

1 个答案:

答案 0 :(得分:0)

在模型中,您将Summary设置为EntitySet,这将返回Summary对象的集合。如果您希望该URL始终返回一个对象,那么您需要一个Singleton。

CreateEdmModel方法应如下所示:

public static IEdmModel CreateEdmModel()
{
    ODataConventionModelBuilder modelBuilder = new ODataConventionModelBuilder();
    modelBuilder.Singleton<Summary>("Summary");
    return modelBuilder.GetEdmModel();
}