Исходный код вики Минусы EF
Редактировал(а) Alexandr Fokin 2024/03/20 14:30
Последние авторы
author | version | line-number | content |
---|---|---|---|
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/ |