I think code first migrations won’t update your model if you have an empty dbcontext object (I mean without dbset properties). So one way to handle this scenario where you are using the repository pattern and injecting dbcontext objet to every requested repository is:
Design two dbcontext objects, one for development time (devdbcontext) and the other for production environment (proddbcontext).
Devdbcontext will be designed with dbset properties, this way the migration workflow will be normal in development time; it will detect model changes and will recreate the database, etc. This object will be selected when you are in DEBUG mode (#if DEBUG)
Proddbcontext will be a derived dbcontext object without dbset properties and will be selected when you are in RELEASE mode (#if RELEASE). For updating the production database I will generate a DATABASE SCRIPT and set the database initilializer to NULL.
What do you think of this solution?