Definitely go with #1.
Since you're already abstracting things, why not abstract the DAL to use an ORM that is compatible with both the CF and the desktop and that allows you to swap out the data store implementation? If would avoid the pitfall that you fell into of being tied to a specific data store.