で indica dove viene fatta l'azione, mentre に indica dove si trova il risultato dell'azione
come esempio, questo del ristorante è poco adatto...
resutoran de tabemasu => mangio al ristorante = il posto dove mi trovo mentre mangio è il ristorante
resutoran ni tabemasu penso che si possa dire ugualmente, ma secondo me è meno corretto, perché il risultato dell'azione non è al ristorante, ma in bagno
è come il nostro "mangio al ristorante" vs "mangio in ristorante", il secondo è molto meno usato