TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.77K subscribers
Post #1120 1.51K
День девятьсот одиннадцатый. #ЗаметкиНаПолях
Объясняем Подходы Code First, Database First и Model First. Начало
Существует два лагеря разработчиков: одни считают Entity Framework интуитивно понятным и простым в использовании, другие считают, что работать с ним - ад. Зачастую это зависит от «подхода» к использованию EF: использовать ли сначала код, сначала базу данных или сначала модель.

Model First включён в этот список, хотя его поддержка была прекращена несколько лет назад. Но люди, которые когда-то с ним мучались, до сих пор думают, что EF - это куча мусора, и они никогда больше не будут с ним работать, хотя подход Code First с тех пор очень сильно усовершенствован.

Здесь мы не будем противопоставлять эти подходы друг другу, а просто рассмотрим, что представляет из себя каждый из них, и почему люди воспринимают EF по-разному в зависимости от подхода, который они использовали.

1. Что такое Code First?
Если вы использовали EF Core или более поздние версии, вы скорее всего использовали подход «Сначала Код». Он состоит в том, что вы сначала строите вашу базу данных с помощью классов C#, а затем «мигрируете» эти сущности в базу данных с помощью команды:
Update-Database
или
dotnet ef database update

Поскольку всё управляется из кода C#, когда вам нужны дополнительные типы SQL, такие как индексы, ограничения или даже просто сложные внешние ключи, вы должны использовать либо атрибуты аннотации данных, либо EF Fluent Configuration.

Главное, что нужно понимать о Code First, это то, что, поскольку вы создаёте базу данных с помощью кода C#, этот подход хорошо работает для разработчиков, но не для администраторов баз данных или архитекторов. Когда всё написано на C#, может быть трудно отобразить схему базы данных. Кроме того, создавать такие вещи, как хранимые процедуры или представления, в Code First, конечно, можно, но это может быть чересчур громоздким.

Преимущества использования подхода Code First:
- Ваш код всегда обращается к схеме базы данных, которую он контролирует, поэтому редко бывает «несоответствие» в типах столбцов, определениях таблиц и т. д.
- У вас есть стандартный способ управления миграциями базы данных (так что не потребуется никаких хитрых инструкций, типа «запустить этот скрипт перед развёртыванием»).
- Практически любой разработчик может создать базу данных, если знает C#, даже не слишком хорошо разбираясь в SQL (хотя… это может негативно повлиять на качество).
- Подход работает для самых разных СУБД, таких как Postgres, MySQL и т. д.

В общем, сегодня вы, вероятно, выберете подход Code First почти для каждого нового проекта .NET. Даже если конечной целью является управление базой данных другим способом после публикации, это такой инструмент быстрого прототипирования, который довольно хорошо масштабируется, поэтому вы захотите его использовать.

Продолжение следует…

Источник:
https://dotnetcoretutorials.com/2021/06/26/code-first-vs-database-first-vs-model-first-entityframework-approaches-explained/
More from @netdeveloperdiary
  1. Oct 16, 2026День 2816. #Карьера #AI Станет ли ИИ-Кодинг Концом Программирования для Людей? Автор ориги…
  2. Oct 15, 2026Post #3374
  3. Oct 14, 2026Post #3373
  4. Oct 13, 2026День 2813. #ЗаметкиНаПолях #Async Ещё Раз Про Async/Await в C#. Часть 1 Почему существует…
  5. Oct 12, 2026День 2812. #Карьера #AI Как Разработчикам Оставаться Полезными, Когда Код Пишет ИИ? По мер…
  6. Oct 11, 2026День 2811. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →