please explain entity framework to me asp.net
===

So far I've been working with MVC3 with Linq to Sql so that all models have been pre-generated and I would create database myself then move the tables onto the dbml editor and if I wanted to change the table I'd remove the entity on the editor and drag it on again. It works perfectly fine, but I've noticed that Microsoft is moving on with EF a lot, and that I should probably learn that too. 

So, after reading some articles, I am totally confused. I wanted to start with Code First approach, which as I understood, makes the developer create the model for the entity first and then the model creates the database. The most confusing thing here is that when I change the model, and at the runtime when my models are being compared to the entities, if it determines that two aren't the same, it drops all tables and recreates them. If that's the case, how do I persist my data? How do I store all my tables so that they don't get dropped? Should I use "Database First" approach instead?  

Please help. Thanks!