首页 > 解决方案 > 尝试通过 odata ws 更新/删除实体的异常

问题描述

我已经构建了一个 asp.net web api 来使用来自 Microsoft Dynamics Navision OData v4 uri 的数据。当我尝试通过上下文检索单个实体时,会引发以下 ODataException:

写入 JSON 响应时,必须指定用户模型,并且必须将实体集和实体类型传递给 ODataMessageWriter.CreateODataResourceWriter 方法,或者必须在正在写入的 ODataResource 或 ODataResourceSet 上设置 ODataResourceSerializationInfo。

示例说明性代码:

        public void Delete(string Name)
        {
            NAV.NAV nav = new NAV.NAV(new Uri("http:servername/db/ODataV4/Company"));
            nav.Credentials = CredentialCache.DefaultNetworkCredentials;
            NAV.Customer custToDel = nav.Customer.Where(c => c.Name == Name).First(); //the line of the exception
        }

更多信息:

  • 使用微软的“OData Connected Service”扩展
  • webapiconfig.cs 没有被修改
  • 在浏览了部分不一致/不连续的 odata 文档以及缺乏对协议的复杂知识后发布此问题。请让我知道我没有包括的任何进一步的信息。谢谢!

    标签: c#asp.netwebasp.net-web-apiodata

    解决方案


    解决方案是将上下文声明中的 uri 更改为http:servername/db/ODataV4. 无意间发现了这个很坑...


    推荐阅读