1. У вас даже в базу то ничего не сохраняется то, ибо вы получаете сущность из вне, она никак не привязана к контексту. Не хватает следующей строки db.Entry(post).State = EntityState.Modified;
2. db.SaveChanges(); - это даже очень, очень синхронный метод (для асинхронности надо пометить метод как async и await db.SaveChangesAsync(); )
3. Откуда у вас возьмутся связанные сущности, если вы ничего из базы не запрашиваете, а получаете сущность из заголовков Post запроса? Чтобы получить связанные сущности - var postWithComments=db.Posts.Include(i => i.Comments).Where(w=>w.Id==post.Id).First();