【问题标题】:Created(entity) throw exception with composite keyCreated(entity) 使用复合键抛出异常
【发布时间】:2015-10-22 04:36:41
【问题描述】:

我有一个使用复合键的实体 (MyEntity)。

实体可以正常发布和插入,但是当调用Created() 时,它会抛出带有消息的InvalidOperationException

实体集“MyEntity”的编辑链接构建器返回 null。一个 位置标题需要编辑链接。

public IHttpActionResult Post(MyEntity entity)
{
    entity = Repository.Insert(entity);
    Repository.Save();

    return Created(entity); // fails
}

【问题讨论】:

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


    【解决方案1】:
    1. 如果您从约定模型构建器构建 Edm 模型,它应该可以工作。

    private static IEdmModel GetEdmModel()
    {
          var builder = new ODataConventionModelBuilder();
          ...
          return builder.GetEdmModel();
    }
    

    1. 如果您从非常规模型构建器构建 Edm 模型,您应该设置 Id 链接构建器然后它才能工作:

    private static IEdmModel GetEdmModel2()
    {
        var builder = new ODataModelBuilder();
        ...
        builder.EntitySet<MyEntity>("MyEntitys").HasEditLink(p => new Uri("http://anylink/"), false);
    
        return builder.GetEdmModel();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-27
      • 1970-01-01
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      相关资源
      最近更新 更多