c# is not the easiest language for this. you will want to preserve the json structure:
using StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8);
var jsonString = reader.ReadToEndAsync();
then parse to JObject or JsonElement depending on your json library of choice. your code can then walk json tree and build insert/update statements based on the request.
if the updates are not random collection of values, then you can use custom request / response classes and build a transaction oriented api.
note: you should never use DTO classes as action parameters.