Была такая же проблема около 4 месяцев назад. Мы рассматривали EF, и единственной проблемой, которую мы не смогли решить, была миграция БД при использовании подхода «сначала код».
Создать новую БД из кода легко, но что, если у вас уже есть БД, созданная из кода, и теперь вы добавляете новое свойство в один из классов или, что еще хуже, меняете его тип или имя. Я долго искал решение этой проблемы, но ничего не смог найти. Исходя из характера проблемы, я сомневаюсь, что скоро будет решение. EF должен быть в состоянии «запомнить» код, который создал исходную схему БД, затем выполнить автоматическое «сравнение» между исходным кодом и текущим кодом и, наконец, проанализировать изменения и реализовать их в схеме БД таким образом, чтобы не будет уничтожать сохраненные данные ... Он должен быть в состоянии справиться с возможным рефакторингом, переименованием классов и так далее. Я сомневаюсь, что это будет особенность в ближайшее время ...