Исходный код вики Минусы EF

Редактировал(а) Alexandr Fokin 2024/03/20 14:30

Последние авторы
1 1. В некоторых ситуация плохая генерация sql запросов. Решается написанием немного иного кода или ручным написанием запроса. (См. ссылку 1, 3)
2 Проблемы возможны при join, in. В целом при создании более сложных вопросов стоит оценивать генерируемый EF sql запрос.
3 !Вполне возможна ситуация, когда несколько более простых последовательных простых запросов выполняться быстрее, чем один сложный запрос. (Из плюсов - механизм [[Change Tracking | Отслеживание изменений>>Разработка.NET.Работа с БД.EntityFramework | EntityFrameworkCore.Механизмы.Change Tracking | Отслеживание изменений.WebHome]], который смапить все запросы в набор сущностей)
4 1. Нет возможности сделать вложенную транзакцию из кода (Если они нужны). Но вопросы изоляции можно решать через Savepoint.
5 1. Из коробки нет возможности указать использовать [[Табличные указания (Хинты)>>doc:Разработка.Базы данных.SQL.MSSQL.TSQL.Табличные указания (Хинты).WebHome]] из кода (См. ссылку 2) и [[Сценарии и проблемы>>doc:Разработка.NET.Работа с БД.EntityFramework | EntityFrameworkCore.Сценарии и проблемы.WebHome]]
6 1. Проблема трансляции специфичных для БД функций для работы с примитивными типами. (Отчасти решается)
7 1. Констатация факта: выполнение запроса с логикой на стороне БД (без загрузки данных в приложение) будет работать быстрее, но может быть не так удобно и требовать больше усилий со стороны разработки.
8 Также это может повлечь за собой большее вынесение бизнес логики из приложения в БД, а также повышает необходимость наличия автоматических тестов, проверяющих эти сценарии.
9 1. Нет возможности выполнить запрос, возвращающий несколько таблиц (несколько select) в качестве результатов. ([[Ado.Net>>Разработка.NET.Работа с БД.Группа\. Провайдеры\..Ado\.Net.WebHome]] позволяет смаппить в DataSet).
10 1. Из коробки нет возможности выполнить UPDATE не загружая данные, используя при этом не константы а относительные значения (Например: a = a +1).
11
12 ----
13
14 **Ссылки:**
15
16 DotNetRu | Алексей Капустяненко «Почему же мой запрос на Entity Framework 6 тормозит? Часть 9000»
17 https://www.youtube.com/watch?v=IQjFIvkuFhM
18
19 Подводные камни Entity Framework и производительность
20 https://habr.com/ru/post/269901
21
22 Расширения Entity Framework 6, о которых вы могли и не знать
23 https://habr.com/ru/post/320128/
24
25
26 Update Data in Disconnected Scenario in Entity Framework Core
27 https://www.entityframeworktutorial.net/efcore/update-data-in-entity-framework-core.aspx
28
29 how to update entity without first loading it
30 https://entityframeworkcore.com/knowledge-base/56722199/how-to-update-entity-without-first-loading-it
31
32 How to batch delete or update in Entity Framework Core 5
33 https://www.reddit.com/r/dotnetcore/comments/k1esra/how_to_batch_delete_or_update_in_entity_framework/