Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
Git
CI/CD
MongoDB
Postgres
Docker
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на C# Developer в телеграм
Как обновить одно поле у большого количества записей в таблице через Entity Framework?
Вместо загрузки и поштучного изменения сущностей используйте пакетные библиотеки (например, EFCore.BulkExtensions) или выполняйте прямой SQL UPDATE через context.Database.ExecuteSqlRaw. Это обновит поле на стороне БД в одну операцию и не будет грузить память.
Что такое Split Queries? Как они решают проблему производительности при загрузке связанных сущностей?
Split Queries — это когда EFCore вместо одного SELECT с JOIN, который возвращает дублируемые строки, выполняет несколько простых запросов: сначала основная сущность, потом связанные коллекции через IN. Это снижает объём передаваемых данных и память, устраняя Cartesian explosion при загрузке Include.
Для чего используется Lazy Loading? В чём его плюсы и минусы?
Lazy Loading автоматически загружает связанные объекты при первом обращении к навигационному свойству. Плюс — вы не загружаете всё сразу, экономя ресурсы. Минус — «N+1» проблема: при переборе коллекции делается много отдельных запросов, что сильно бьёт по производительности.
С какими ORM вы сталкивались (Entity Framework, Dapper и др.)?
Я использовал Entity Framework Core для быстрого старта и сложной модели, Dapper для сверхбыстрого маппинга через SQL, NHibernate в крупных проектах с продвинутым кэшированием и LINQ to SQL в наследованных решениях. Каждый инструмент выбирался по критериям производительности, простоты и требований к функциональности.
Что автоматически создается в миграции при использовании NavigationProperty в Code First?
При добавлении NavigationProperty EF автоматически:
Создает внешний ключ (FK) в таблице
Генерирует соответствующие поля в БД
Добавляет индекс для FK (по умолчанию)
Какие методы массовой вставки данных эффективнее AddRange (например, BulkInsert)?
Почему BulkInsert работает быстрее обычных вставок (игнорирование констрейнтов, минимизация транзакций)?
Рейтинг:
1
Сложность:
7
Эффективные альтернативы:
BulkInsert (EF Extensions, Npgsql)
SqlBulkCopy (нативный для SQL Server)
Table-Valued Parameters
Raw SQL (INSERT с множеством VALUES)
Рейтинг:
1
Сложность:
8
BulkInsert быстрее благодаря:
Минимальному количеству roundtrips к БД
Отключению проверки констрейнтов
Пакетной обработке
Отсутствию трекинга изменений
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
7
Рейтинг:
2
Сложность:
6
Рейтинг:
1
Сложность:
5
Рейтинг:
1
Сложность:
7