Повна версія плану також доступна у
content/01.csharp/10.ef-core/plan.md
Створити повний, глибокий навчальний курс з Entity Framework Core, що охоплює весь функціонал фреймворку. Кожна стаття — ~1000 рядків контенту українською мовою, у стилі prompt.md (text-first, "why before how", code anatomy, Docus components). Матеріали розміщуються у content/01.csharp/10.ef-core/.
07.testing/ — глибока деталізація, ~30-50KB на статтю, академічний але живий викладВід проблеми до першого робочого ORM-проєкту
01.what-is-orm.md — Що таке ORM? Від SQL до об'єктівПроблема-гачок: Impedance mismatch — чому реляційні таблиці і об'єкти C# не стикуються напряму, і до чого це призводить у реальних проєктах.
Зміст (~1000 рядків):
02.first-project.md — Перший проєкт: від нуля до CRUDПроблема-гачок: Ми маємо клас Product в C# і таблицю Products в базі — як їх пов'язати без ручного маппінгу?
Зміст (~1000 рядків):
03.dbcontext-deep-dive.md — DbContext: Серце EF CoreПроблема-гачок: Чому один і той самий DbContext не можна використовувати в різних потоках? Чому lifetime має значення?
Зміст (~1000 рядків):
04.database-providers.md — Провайдери баз данихПроблема-гачок: EF Core працює з PostgreSQL, SQL Server, SQLite, MySQL — але як один і той самий код підтримує різні СУБД?
Зміст (~1000 рядків):
05.conventions.md — Конвенції: Магія без конфігураціїПроблема-гачок: Чому EF Core "просто знає", що властивість Id — це первинний ключ, а BlogId у Post — зовнішній? Тут знімаємо магію.
Зміст (~1000 рядків):
Серце ORM — як правильно описати структуру бази
06.fluent-api-vs-annotations.md — Fluent API vs Data AnnotationsЗміст (~1000 рядків):
07.relationships-basics.md — Зв'язки: One-to-One, One-to-ManyЗміст (~1000 рядків):
08.relationships-advanced.md — Зв'язки: Many-to-Many та Складні СценаріїЗміст (~1000 рядків):
09.property-configuration.md — Властивості: Типи, Конвертери, КомпараториЗміст (~1000 рядків):
10.complex-types-owned.md — Складні типи: Owned Types та Complex TypesЗміст (~1000 рядків):
11.json-columns.md — JSON Columns: Складні дані у JSONЗміст (~1000 рядків):
12.inheritance.md — Успадкування: TPH, TPT, TPCЗміст (~1000 рядків):
13.indexes-constraints.md — Індекси, Обмеження та СхемаЗміст (~1000 рядків):
14.seeding.md — Seed Data: Початкові даніЗміст (~1000 рядків):
15.global-query-filters.md — Глобальні фільтри запитівЗміст (~1000 рядків):
Як EF Core перетворює C# LINQ в SQL
16.linq-queries.md — LINQ-запити: Основи та Механіка ТрансляціїЗміст (~1000 рядків):
17.loading-related-data.md — Завантаження пов'язаних данихЗміст (~1000 рядків):
18.raw-sql.md — Raw SQL, Stored Procedures, ViewsЗміст (~1000 рядків):
19.advanced-queries.md — Просунуті запитиЗміст (~1000 рядків):
Як EF Core знає, що змінилось
20.change-tracking.md — Change Tracker: Як EF Core відстежує зміниЗміст (~1000 рядків):
21.saving-data.md — Збереження даних: SaveChanges та стратегіїЗміст (~1000 рядків):
22.concurrency.md — Управління Конкурентним ДоступомЗміст (~1000 рядків):
Еволюція бази даних разом з кодом
23.migrations-basics.md — Міграції: ОсновиЗміст (~1000 рядків):
24.migrations-advanced.md — Міграції: Просунуті сценаріїЗміст (~1000 рядків):
25.schema-management.md — Управління Схемою та Database-FirstЗміст (~1000 рядків):
Від "працює" до "працює швидко"
26.performance-fundamentals.md — Продуктивність: ОсновиЗміст (~1000 рядків):
27.performance-advanced.md — Продуктивність: Просунуті ТехнікиЗміст (~1000 рядків):
28.diagnostics-logging.md — Діагностика та ЛогуванняЗміст (~1000 рядків):
Експертний рівень
29.interceptors.md — Interceptors та EventsЗміст (~1000 рядків):
30.testing-with-efcore.md — Тестування з EF CoreЗміст (~1000 рядків):
31.patterns-and-architecture.md — Архітектурні Патерни з EF CoreЗміст (~1000 рядків):
content/01.csharp/10.ef-core/
├── .navigation.yml # title: Entity Framework Core, icon: i-lucide-database
├── plan.md # План вивчення (цей файл)
│
│── 01.what-is-orm.md # Що таке ORM?
│── 02.first-project.md # Перший проєкт
│── 03.dbcontext-deep-dive.md # DbContext
│── 04.database-providers.md # Провайдери
│── 05.conventions.md # Конвенції
│── 06.fluent-api-vs-annotations.md # Fluent API vs Annotations
│── 07.relationships-basics.md # Зв'язки: 1-1, 1-N
│── 08.relationships-advanced.md # Зв'язки: N-N та складні
│── 09.property-configuration.md # Властивості та конвертери
│── 10.complex-types-owned.md # Owned Types та Complex Types
│── 11.json-columns.md # JSON Columns
│── 12.inheritance.md # TPH, TPT, TPC
│── 13.indexes-constraints.md # Індекси та обмеження
│── 14.seeding.md # Початкові дані
│── 15.global-query-filters.md # Глобальні фільтри
│── 16.linq-queries.md # LINQ-запити
│── 17.loading-related-data.md # Eager, Lazy, Explicit Loading
│── 18.raw-sql.md # Raw SQL, Views, SP
│── 19.advanced-queries.md # Compiled Queries, Bulk
│── 20.change-tracking.md # Change Tracker
│── 21.saving-data.md # SaveChanges та транзакції
│── 22.concurrency.md # Оптимістична конкурентність
│── 23.migrations-basics.md # Міграції: основи
│── 24.migrations-advanced.md # Міграції: просунуті
│── 25.schema-management.md # Database-First, Scaffold
│── 26.performance-fundamentals.md # Продуктивність: основи
│── 27.performance-advanced.md # Продуктивність: advanced
│── 28.diagnostics-logging.md # Діагностика та логування
│── 29.interceptors.md # Interceptors та Events
│── 30.testing-with-efcore.md # Тестування
│── 31.patterns-and-architecture.md # Архітектурні патерни
# .navigation.yml
title: Entity Framework Core
icon: i-lucide-database
Статті мають створюватися послідовно, бо кожна наступна будує на попередніх. Рекомендований порядок — від 01 до 31.
| Стаття | Залежить від |
|---|---|
| 01. What is ORM | 09.ado-net (весь розділ) |
| 04. Database Providers | Базові знання SQL |
| 18. Raw SQL | 09.ado-net/05.parameters-and-sql-injection |
| 21. Saving Data | 09.ado-net/06.transactions |
| 30. Testing | 11.aspnet/07.testing (увесь розділ) |
| 31. Architecture | 04.architecture-best-practices |
!IMPORTANTКількість статей: 31 стаття × ~1000 рядків = ~31,000 рядків контенту. Це масштабний проєкт. Чи задовольняє така структура? Можливо:
- Деякі теми варто об'єднати (наприклад, Diagnostics + Logging з Performance)?
- Деякі теми не потрібні (наприклад, Database-First workflow)?
- Потрібні додаткові теми (наприклад, EF Core з Blazor, EF Core з gRPC)?
!IMPORTANTІконка навігації: Зараз
.navigation.ymlмаєicon: i-lucide-cpu. Пропоную змінити наicon: i-lucide-database— більш семантично відповідає EF Core.
!IMPORTANTПорядок створення: Чи є пріоритетні статті, з яких варто почати? Чи просто послідовно від 01 до 31?
npm run dev для перевірки рендерингуInterceptors в EF Core — Connection, Transaction та Materialization (Частина 2)
IDbConnectionInterceptor для управління з'єднаннями і connection pooling. IDbTransactionInterceptor для спостереження за транзакціями. IMaterializationInterceptor для кастомної матеріалізації. Suppress Result — замінити виконання своїм результатом. Composite Interceptor Pattern.
Вступ до ASP.NET та еволюція фреймворку
Глибоке занурення в анатомію ASP.NET Core, історію його розвитку, архітектуру Kestrel та причини переходу до Minimal API.