
Entity Framework Core просунутий
Raw SQL, stored procedures, транзакції, AsNoTracking, AsSplitQuery, query tags, interceptors, налаштування продуктивності
1Як виконати сирий SQL-запит для отримання сутностей у EF Core?
Як виконати сирий SQL-запит для отримання сутностей у EF Core?
Відповідь
Метод FromSql() або FromSqlRaw() дозволяє виконувати сирі SQL-запити, повертаючи при цьому сутності, які відстежує DbContext. Це корисно в сценаріях, коли LINQ не може виразити запит безпосередньо, наприклад під час виклику stored procedures або табличних функцій. Потім результати можна комбінувати з LINQ для додавання фільтрів або включення зв'язків.
2Яка різниця між FromSqlRaw() та ExecuteSqlRaw() у EF Core?
Яка різниця між FromSqlRaw() та ExecuteSqlRaw() у EF Core?
Відповідь
FromSqlRaw() використовується для виконання SELECT-запитів, що повертають відстежувані сутності, дозволяючи комбінування з LINQ. ExecuteSqlRaw() використовується для виконання незапитних команд (INSERT, UPDATE, DELETE) і повертає кількість змінених рядків. FromSqlRaw() застосовується до DbSet, тоді як ExecuteSqlRaw() застосовується до Database. Це розрізнення забезпечує безпеку типів і узгодженість моделі.
3Як викликати stored procedure, яка повертає сутності, у EF Core?
Як викликати stored procedure, яка повертає сутності, у EF Core?
Відповідь
Використовуйте FromSqlRaw() або Database.SqlQuery<T>(), щоб викликати stored procedure і відобразити результати на сутності. Дуже важливо додати AsEnumerable() після виклику, щоб запобігти спробі EF Core виконувати компонування над результатами stored procedure, що спричинило б помилки синтаксису SQL. Параметри можна передавати за допомогою синтаксису @p0, @p1, щоб запобігти SQL-ін'єкції.
Яку роль відіграє AsNoTracking() у EF Core?
Коли використовувати AsNoTrackingWithIdentityResolution() замість AsNoTracking()?
+22 питань зі співбесід
Інші теми співбесід .NET
Основи C#
LINQ & Delegates
Основи мови C#
Основи ASP.NET Core
Життєвий цикл запиту в ASP.NET Core
Configuration & Settings
Життєвий цикл застосунку
Dependency Injection
Entity Framework Core
Minimal APIs
Розробка Web API
Async в ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Серіалізація JSON
Розширені можливості C#
Clean Architecture
Logging, Monitoring & Observability
Модульне тестування та xUnit
Інтеграційні тести
Docker & Containerization
Керування пакетами NuGet
Memory Management & GC
Реактивне програмування
Async/await і патерни
.NET Design Patterns
Оптимізація продуктивності
Безпека та Best Practices
SignalR і реальний час
Архітектура мікросервісів
Опануй .NET для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно