We expect kids to behave in a certain way. What we often mis out on realising is that these kids don't always know what way they are supposed to behave.
Just because the last time we went out for dinner we taught them how to behave well, doesn't mean they will remember it for next time.
They can't infer something from one situation and apply it to another situation. As parents or caregivers it is very important for us to FRONTLOAD often to our children. So let's say you have some guests coming home for dinner.
You have to ensure you tell your child before hand, probably that morning or before leaving from home that, "we are going to have some friends for dinner. We are going to have a good time, but mom and Dad may be busy attending them and hence we may not be able to cater to you at all times."
It is important to let the child know what he will be expecting that evening