Что такое Code First?

Какие особенности данного подхода и когда его лучше всего использовать?

Подход взаимодействия с базой данных, при котором разработчик своими ручками пишет код, который в будущем будет отображать сущности в базе данных, а затем используя Entity Framework для автоматической генерации SQL БД с таблицами, отображающими классы разработчика.

Подход очень гибкий, может быть использован как при инициализации БД, так и при подключении к существующей, как ни странно (его часто называют “Code Second” и путают с Database first (хотя разницы и я особо не замечал...) ).

При использовании данного подхода, главное - не забыть создать класс-контекст данных.

Также необходимо помнить, что в контексте промежным звеном между БД и приложением является набор данных DbSet.