As Lisa says, these are all correct. You may like to know that the second one is both quite an informal way of speaking, and also an American way of speaking.
To think about it more deeply, I also agree with Lisa that I would say "for dinner" instead of "at dinner". Using "at" is not wrong, but "for" feels more natural. "At" is treating dinner as a place or a period of time, and "for" is treating dinner more like an objective or purpose (if that makes sense). So the choice of "at" or "for" is a subtle one depending on what "dinner" is to you.