Reading MultiPart From Data with descriptors
The naming and variable conventions in your method look like it was written by at least three different persons:


var provider ..
Stream _id ..
StreamReader reader ..



You really should pick just one style and stick to it for the entire application. It's very hard to read.



But the variables are not the only thing that is extremely incosistent.


Stream _id = postId.ReadAsStreamAsync().Result;



Why are you not awaiting this result like you do with the other ..Async methods?



All streams need to be disposed.



Overall I've got the impression that you put this method together just for the sake of this question and mixed variables and fields which would explain why some of them are prefixed with the underscore.