Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
💡Как повысить производительность с помощью разделения запросов EF Core: по мотивам статьи Milan Jovanovic

Если у вас есть проблемы с производительностью LINQ-запросов, обратите внимание на новую фичу EF Core 5.0 под названием Query Splitting.

📌 Вызываем метод AsSplitQuery:

dbContext
.Orders
.Include(order => order.LineItems)
.ThenInclude(lineItem => lineItem.Dimensions)
.AsSplitQuery()
.First(order => order.Id == orderId);


В этом случае EF Core сгенерирует следующие SQL-запросы:

SELECT o.*
FROM Orders o
WHERE o.Id = @orderId;

SELECT li.*
FROM LineItems li
JOIN Orders o ON li.OrderId = o.Id
WHERE o.Id = @orderId;

SELECT d.*
FROM LineItemDimensions d
JOIN LineItems li ON d.LineItemId = li.Id
JOIN Orders o ON li.OrderId = o.Id
WHERE o.Id = @orderId;


Для каждого оператора Include у нас есть отдельный SQL-запрос. Преимущество в том, что мы не дублируем данные при извлечении из БД.

📌 Включаем разделение запросов для всех запросов:

services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
"CONNECTION_STRING",
o => o.UseQuerySplittingBehavior(
QuerySplittingBehavior.SplitQuery)));


Все создаваемые EF Core запросы будут разделенными. Чтобы вернуться к одному запросу, нужно вызвать метод AsSingleQuery:

dbContext
.Orders
.Include(o => o.LineItems)
.ThenInclude(li => li.Dimensions)
.AsSingleQuery()
.First(o => o.Id == orderId);


💡Важно знать

🔸Не существует гарантии согласованности для нескольких SQL-запросов. Вы можете столкнуться с проблемой, если одновременно с запросом происходит параллельное обновление.

🔸Чтобы смягчить это, вы можете обернуть запросы внутри транзакции, но это приведет только к проблемам с производительностью в других местах.

🔸Каждый запрос требует сетевого обращения. Если задержки при обращении к БД высоки, это может снизить производительность.

#dotnet #aspnet #tip by Milan Jovanovic
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🤔31
🧠Чему вы бы хотели научиться?

Расскажите нам о ваших пожеланиях: какие навыки вы хотели бы прокачать в ближайшее время или какую профессию хотели бы приобрести?

За прохождение опроса вы получите промокод на скидку 15% на все наши курсы до конца 2024 года.

👉Опрос по ссылке👈
🥱2👍1👏1😁1
🤷‍♂️ Никогда такого не было, и вот опять…

Опрос Российской ассоциации электронных коммуникаций говорит о снижении доходов IT-специалистов, тогда как те же аналитики hh.ru отмечают рост медианной зарплаты.

💬 А как поживают ваши доходы?

🥱 — упали, но незначительно
🙏 — упали сильно
🤩 — выросли
🤩88🥱47🙏24🤔13👍3
🤩 Изучайте .NET 8 с помощью новых видеоуроков для начинающих

Ранее мы публиковали серию новых плейлистов с видеоуроками, но здесь каждый из них кратко описан, чтобы вы могли подобрать для себя подходящий.

Вас ждут девять новых серий для начинающих по C#, .NET, генеративному ИИ, NuGet, Visual Studio, VS Code + C# Dev Kit, Blazor Hybrid, .NET IoT и обновлению .NET-приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123👏1
🔟🏢 ТОП-10 российских IT-работодателей

Рейтинг работодателей, которые могут конкурировать по условиям труда с лидерами рынка.

Читать статью

#почитать
🥱11😁7👍2🌚1
Forwarded from Библиотека программиста | программирование, кодинг, разработка
This media is not supported in the widget
VIEW IN TELEGRAM
👍44
🧰 Автоматизация профилирования памяти с помощью DotMemory Profiler API

Microsoft MVP Steve Gordon делится опытом использования dotMemory для оптимизации кода и демонстрирует функцию автоматизации сбора снэпшотов памяти:

☑️ Использование dotMemory и автоматизация рутинных операций
☑️ Использование NuGet пакета JetBrains.Profiler.Api
☑️ Профилирование кода
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔6👍3
Преимущества, недостатки и практика .NET Native AOT: гайд для C#-разработчика

👉 Читать
18👍6
🍪Cookie ASP.NET Core в деталях

ASP.NET Core создает несколько файлов cookie, включающих проверку подлинности, защиту от подделки и сеансовые. Под катом — разбор того, что содержат эти файлы cookie и как они защищены.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
144👍3