The other answer is pretty close to being correct but still technically wrong. First, there are 2 ways to get Eevee, and both require the national Pokedex.
In Pokémon Diamond and Pearl, if the player has seen the first 150 Pokémon in the Sinnoh Pokédex, they can obtain the National Pokédex.
Of course, you can simply trade all 150 Pokemon from another game, register them in the Pokedex, and trade them back. If you don't trade, then it's very difficult but still technically possible. First, defeat the regular trainers in all the routes and buildings. Then fly back to the Pokemon League, defeat the rival, and defeat the first 3 of the Elite 4. When battling Lucian, make sure you see all 5 of his Pokemon and then lose to him. After battling those trainers, you should have these Pokemon left to see.
Unown: encounter at Solaceon Ruins
Uxie: encounter at Acuity Cavern
Mesprit: encounter at Verity Cavern (your Pokedex should register it before it starts roaming)
Azelf: encounter at Valor Cavern
Palkia: read book in Celestic Town
Spiritomb: use odd keystone on Route 209, greet players Underground 32 times, and encounter on Route 209
Milotic: catch Feebas in Mt. Coronet and evolve it
Garchomp: catch Gabite in Victory Road and evolve it