0

aspnet から aspnetcore に変換して API の再構築に取り組んでいます。OData と標準 API の混合は Swagger と互換性がなかったため、いくつかのルートを OData に移動することを余儀なくされました。

とにかく、そのようなメソッドの1つ(残りの最後のメソッド)には次の署名があります

    [HttpPost]
    public IActionResult PostChanges([FromBody] ICollection<BulkEditDTO> changeSet)
    {
        if (!ModelState.IsValid)
        {
            var error = ModelState.Values.Select(x => x.Errors).FirstOrDefault();
            return BadRequest(ModelState);
        }

        //TODO:Get data?

    }

物体

public class BulkEditDTO
{
    [Key]
    [DataMember]
    public int Id { get; set; }

    [DataMember]
    public SomeDTO Changes { get; set; }
}

関数、複合型、アクション、考えられる ODataActionParamaers のすべての組み合わせを試したような気がしますが、これを解決できないようです。プロパティとしてienumerableを持つ単純なDTOを試してみましたが、「キーが必要」という問題に遭遇しました。

私が試した多くの研究は、私をこの道に導きます:

https://github.com/OData/WebApi/issues/1873

ヘッダーを探していて、ボディを使用しようとしているため、それはまったく同じではありません。

これに対する実際の回避策はありますか?

4

0 に答える 0