繁体   English   中英

带有Web API /实体框架的OData-为实体定义控制器名称

[英]OData with Web API/Entity Framework - define controller name for entity

我在WebAPI(带有Entity Framework模型)中使用OData,它似乎正在工作。 但是我有一个名为NominalAccounts的实体/控制器,其中的控制器称为'NominalAccountsController',数据库实体为'NominalAccount',而我使用的OData路径为'nominal_accounts'(即http:// test / api / nominal_accounts ) 。 所以我在启动类中有以下代码:

 builder.EntitySet<NominalAccount>("nominal_accounts");

但这似乎失败了,因为它寻找带下划线的控制器。 有没有一种方法可以为实体集定义应寻找的控制器?

我不知道您的设置是什么样子,但是每个实体都有一个controller 为了使我的控制器具有特定的端点,我只需使用ODataRoutePrefix

using System.Web.Http;
using System.Web.OData;
using System.Web.OData.Query;
using System.Web.OData.Routing;

[ODataRoutePrefix("nominal_accounts")]
public class NominalAccountsController : ODataController
{
    [EnableQuery]
    public virtual IQueryable<NominalAccount> Get(ODataQueryOptions<NominalAccount> q)
    {
        return _your_odata_source;
    }
}

和我的配置是这样的:

IEdmModel model = GenerateModel();
config.MapODataServiceRoute(routeName: "ODataRoute", routePrefix: "odata", model: model);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM