Я сейчас работаю над похожей проблемой.
Я использую первый подход EF Model. Я использую проект базы данных, который подпитывается sql EF генерирует.
Обычно у меня есть проект базы данных, как обычно, но таблица sql - это sql, сгенерированный моделью EF.
Проекты базы данных FYI способны создавать сценарии изменений в существующих базах данных без потери всех ваших данных. Вы можете настроить проект БД так, чтобы он предупреждал вас, если выполняемое изменение вредно для данных, и не запускать в таких случаях.
Я еще не закончил доработку своего решения (изменил SsdlToSql10.tt, который ef использует для создания sql. Делая его более дружественным к проектам баз данных!).