При использовании EF Core для доступа к данным все исключения БД оборачиваются в
DbUpdateException
. Если вам нужно выяснить, было ли исключение вызвано уникальным ограничением, слишком длинным значением или отсутствием значения для обязательного столбца, вам нужно будет изучить конкретный экземпляр подкласса DbException
и проверить код ошибки, чтобы определить точную причину.EntityFramework.Exceptions
упрощает это, обрабатывая все специфичные для базы данных детали и выбрасывая разные исключения. Всё, что вам нужно сделать, это настроить DbContext
, вызвав UseExceptionProcessor
, и обработать такие исключения, как UniqueConstraintException
, CannotInsertNullException
, MaxLengthExceededException
, NumericOverflowException
, ReferenceConstraintException
.В случае
UniqueConstraintException
и ReferenceConstraintException
вы можете получить имя связанного ограничения с помощью свойства ConstraintName
. ConstraintProperties
будет содержать свойства, которые являются частью ограничения.📦 NuGet
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍55🤔6❤1🥱1
Forwarded from Библиотека нейросетей | ChatGPT, Midjourney, DeepSeek, Sora
Вы когда-нибудь задумывались, как можно использовать искусственный интеллект для того, чтобы подготовиться к техническим собеседованиям лучше, быстрее и эффективнее? Мы вот — да! И поэтому подготовили 55 промтов, которые помогут сделать это.
В статье собраны шаблоны запросов, которые желательно «докрутить» под себя.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍3🥱3
🧮 Разработка и использование парсера .NET AsciiMath в расширении Markdig
Эндрю Лок изучил несколько существующих решений, позволяющих конвертировать в MathML и отображать математические формулы, но ничего лучше портирования реализации Ruby AsciiDoctor на .NET не нашел.
Читайте подробнее о реализации и том, как автор использовал ChatGPT для упрощения рутинных задач.
Эндрю Лок изучил несколько существующих решений, позволяющих конвертировать в MathML и отображать математические формулы, но ничего лучше портирования реализации Ruby AsciiDoctor на .NET не нашел.
Читайте подробнее о реализации и том, как автор использовал ChatGPT для упрощения рутинных задач.
👍8
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🅾️ Что такое «О» большое: объясняем на простых примерах
«О» большое (Big O notation) — это математическая нотация, которая позволяет оценить, как изменяется время выполнения алгоритма или объём используемой памяти в зависимости от размера входных данных.
Мы написали подробный гайд по видам сложности, проиллюстрировав их понятными примерами.
🔗 Читать статью
🔗 Зеркало
«О» большое (Big O notation) — это математическая нотация, которая позволяет оценить, как изменяется время выполнения алгоритма или объём используемой памяти в зависимости от размера входных данных.
Мы написали подробный гайд по видам сложности, проиллюстрировав их понятными примерами.
🔗 Читать статью
🔗 Зеркало
👍17🥱1
🤔 Сталкивались ли вы когда-нибудь с исключением
Чтобы узнать, что List был изменен, Steven Giesel предложил ввести механизм версионности, который заключается в следующем:
☑️ В классе списка вводится поле
☑️ При создании итератора для перечисления элементов списка запоминается текущее значение
☑️ В каждом вызове метода
Таким образом, при попытке изменить список в процессе его перечисления, система обнаруживает несоответствие версий и активно препятствует продолжению некорректной операции, защищая от ошибок выполнения и потенциальных багов в программе.
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.?
Чтобы узнать, что List был изменен, Steven Giesel предложил ввести механизм версионности, который заключается в следующем:
☑️ В классе списка вводится поле
version,
которое инкрементируется каждый раз при изменении списка (добавлении, удалении элементов или изменении существующих).☑️ При создании итератора для перечисления элементов списка запоминается текущее значение
version.
☑️ В каждом вызове метода
MoveNext()
итератора происходит проверка: если текущее значение version
списка отличается от значения, зафиксированного при создании итератора, генерируется исключение InvalidOperationException.
Это предотвращает непредвиденные последствия от изменения коллекции во время её перебора.Таким образом, при попытке изменить список в процессе его перечисления, система обнаруживает несоответствие версий и активно препятствует продолжению некорректной операции, защищая от ошибок выполнения и потенциальных багов в программе.
Steven-Giesel
How does a List know that you changed it while enumerating it?
Everyone falls for that and tries to change a list while enumerating it greeted by the System.InvalidOperationException: Collection was modified; enumeration operation may not execute. message. But how does the List know that you changed it? Let's find out.
👍16🥱3
🚫 Как потреблять API с ограничением по RPS в .NET приложениях
Сеньор .NET-разработчик Степан Минин рассказывает, как отправлять запросы из
👉 Читать
Сеньор .NET-разработчик Степан Минин рассказывает, как отправлять запросы из
HttpClient
так, чтобы не получать 429 Too Many Requests
.👉 Читать
👍9❤5🔥3
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🎭 7 типов программистов, которых вы встретите на собеседовании
Осторожно! Данная статья носит шуточный характер и не преследует цели обидеть кого-либо. Все ситуации выдуманы, а совпадения — случайны.
🔗 Читать статью
🔗 Зеркало
Осторожно! Данная статья носит шуточный характер и не преследует цели обидеть кого-либо. Все ситуации выдуманы, а совпадения — случайны.
🔗 Читать статью
🔗 Зеркало
😁21👍6🥱4
🔥 Разработка игр: пошаговый гайд от JetBrains
🎮 Game graphics, assets and project setup
🎮 Creating a starfield skybox
🎮 Adding a spaceship and asteroid to the scene
🎮 Controlling the player – Shooting lasers and moving around
🎮 Moving and exploding asteroids
🎮 Spawning asteroid GameObjects
🎮 Adding basic UI for keeping score
🎮 Conclusion
🎮 Game graphics, assets and project setup
🎮 Creating a starfield skybox
🎮 Adding a spaceship and asteroid to the scene
🎮 Controlling the player – Shooting lasers and moving around
🎮 Moving and exploding asteroids
🎮 Spawning asteroid GameObjects
🎮 Adding basic UI for keeping score
🎮 Conclusion
👍11🥰4
🥑 Подборка лучших статей «Библиотеки программиста» за апрель: сохраняй в заметки, чтобы не пропустить #самыйсок
🐛 7 признаков неопытного программиста
⚙️ Названия веток и комментарии к коммитам в Git: лучшие практики
🙅♂️ Дискриминация на работе: в чем проявляется и что делать, если вы с ней столкнулись
🧑💻 Как я входил в IT: опыт подписчиков «Библиотеки программиста»
🤺 Искусство оскорблять: как поставить коллегу на место и отбить желание работать над проектом
🔍💼 Исследование рынка: 8 наиболее востребованных языков программирования в 2024 году
📖 ТОП-7 книг по C# для начинающих разработчиков в 2024 году
🐛 7 признаков неопытного программиста
⚙️ Названия веток и комментарии к коммитам в Git: лучшие практики
🙅♂️ Дискриминация на работе: в чем проявляется и что делать, если вы с ней столкнулись
🧑💻 Как я входил в IT: опыт подписчиков «Библиотеки программиста»
🤺 Искусство оскорблять: как поставить коллегу на место и отбить желание работать над проектом
🔍💼 Исследование рынка: 8 наиболее востребованных языков программирования в 2024 году
📖 ТОП-7 книг по C# для начинающих разработчиков в 2024 году
👍2
В C# принято создавать отдельный интерфейс для каждой сущности ради обеспечения тестируемости. Но так ли это нужно? Можно ли обойтись без создания дублирующего кода?
🕘 Таймкоды:
00:00:00 Вступление
00:02:50 В чем проблема интерфейсов для тестов?
00:18:45 protected virtual метод вместо выноса интерфейса
00:34:40 Мокаем прямые зависимости, AutoMock
00:50:50 Производительность вызова виртуальных методов
⏯️ YouTube | Apple Подкасты | Google Подкасты | Яндекс Музыка
#подкасты
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱3❤1
Invoke-Command
в PS можно использовать с флагом -AsJob
для параллельного запуска команд на нескольких компьютерах.#powershell #tip by Adam Bertman
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍7🥰5👾2❤1
Артем разбирает реализацию межсервисного взаимодействия от Microsoft и самое главное — рассматривает плюсы и минусы популярных генераторов для API клиентов.
▶️ Смотреть
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19