小编Pet*_*ete的帖子

使用GUID主键的OData V4 REST

所有!我正在使用OData v4构建REST服务.我的表有一个GUID主键.

我的GET和POST请求工作正常.但是PUT,PATCH和DELETE请求失败了404.

我不确定网址应该是什么样的.我在Fiddler尝试了这些,都得到了404.我用Google搜索了这一点,没有运气.

http://localhost/ershubrest/AppVersions/guid'00000000-e90f-4938-b8f6-000000000000'

http://localhost/ershubrest/AppVersions/'00000000-e90f-4938-b8f6-000000000000'

http://localhost/ershubrest/AppVersions/00000000-e90f-4938-b8f6-000000000000
Run Code Online (Sandbox Code Playgroud)

这是我的控制器的代码......

using ERSHubRest.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;
using System.Web.OData.Query; 
using System.Web.OData.Routing;

namespace ERSHubRest.controllers
{
[ODataRoutePrefix("AppVersions")]
public class AppVersionsController : ODataController
{
    HubModel db = new HubModel();

    private bool AppVersionsExists(System.Guid key)
    {
        return db.AppVersions.Any(p => p.AppVersionId == key);
    }

    // http GET for select queries

    [ODataRoute]
    [EnableQuery]
    public IQueryable<AppVersions> Get()
    {
        return db.AppVersions;
    }

    [ODataRoute("({key})")]
    [EnableQuery]
    public IHttpActionResult Get([FromODataUri] System.Guid key)
    {
        IQueryable<AppVersions> result …
Run Code Online (Sandbox Code Playgroud)

rest guid odata

2
推荐指数
2
解决办法
7612
查看次数

标签 统计

guid ×1

odata ×1

rest ×1