0

MyEntity複合キーを使用するエンティティ ( ) があります。

エンティティは投稿され、問題なく挿入されますが、Created()呼び出されると、メッセージとともに がスローInvalidOperationExceptionされます。

エンティティ セット 'MyEntity' の編集リンク ビルダーが null を返しました。ロケーション ヘッダーには編集リンクが必要です。

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

    return Created(entity); // fails
}
4

1 に答える 1

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();
}

于 2015-07-31T02:32:45.897 に答える