Unlike the Compact method, the Shrink method does not create a temporary database file. Instead, all empty and unallocated pages are moved to the end of the file and are then truncated, reducing the overall database size.
You can configure a database to automatically shrink by setting the AutoShrink()() property on the database.