DB + EF + Repository + UnitOfWork
HTML-код
- Опубликовано: 19 апр 2024
- Покажу, как я использую паттерны Repository и UnitOfWork совместно с EntityFramework Core. А также постараюсь объяснить почему я так делаю. Создадим пару сущностей, "положим" их в БД при этом создадим миграции для EntityFrameworkCore и многое другое.
Благодарности и помощь каналу принимаются:
www.calabonga.net/site/thanks
Наши видео доступны и на Дзэн:
dzen.ru/calabonga
Можно стать спонсором, и вы получите доступ к эксклюзивным бонусам:
* boosty.to/calabonga
Я использую хостинг Reg.ru
htttps://reg.ru/?rlink=reflink-11163551
есть интересная библиотека Bogus для сидирования данных. особо может быть хороша в связке с ef
а что за расширение, которое показывает какие сущности являются таблицами в бд?
Net8 + EntityFrameworkCore
Видео длинное, хотя бы обьяснили тогда, что такое паттерн Repository и что за паттерн UnitOfWork, и как эти два паттерна между собой сочитаются. А то взяли и просто подключили свои библиотеки.
Так если "просто подключили", то что объяснять? Да и а начале видео, я так и сказал, что "покажу, как я это делаю", а не "расскажу про основные паттерны работы DAL, про которые разработчик должен знать и без меня, не говоря уже, что в интернете полно информации". 🙂
Repository - это обстракция, для обеспечения гибкости. Сегодня вы работаете с Posgress, завтра с MSSql, и для облегчения перехода от одного к другому, делают такую вот прослойку. UnitOfWork обеспечивает целостность сохранения данных в разрезе Transaction
Вы упомянули, что есть видео про Definition, а ссылки на него не указали.
Можно добавить ее в описание под видео?
boosty.to/calabonga/posts/9d1be9bb-a117-4a17-877e-252d58be9800?share=post_link
boosty.to/calabonga/posts/136c41fd-1c86-47a2-9d26-feee6355cfca?share=post_link
А почему при сохранении в БД используется SpecifyKind? Он же не преобразует дату, а только меняет Kind. Если дата была Local, то значение не поменяется. Не логичнее использовать ToUniversalTime?
Я пробовал, у меня получилось на тот момент. Попробуйте. Очень интересно, получится или нет.
@@SergeiCalabonga потыкал разные варианты на текущем проекте и получилось следующее. При использовании LinqDynamic для генерации запросов в БД обязательно использовать ToUniversalTime. Иначе сначала либа конвертнет в Local, а затем мы проставим UTC. И в БД появится гап на оффсет даты при сравнениях и фильтрации. А вот если без LinqDynamic работать, то разницы можно сказать и нету
О! Это интересная информация. Приму к сведению! Спасибо огромное!