Entity Framework Core на практике : репозитории, миграции, модели, связи, запросы к PostgreSQL

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 มิ.ย. 2024
  • Всем привет, в этом видео я покажу на практике как работать с EF Core.
    ✅ Подписаться на Telegram: t.me/sachkov_blog
    ✅ Поддержать денежкой: boosty.to/sachkov/donate
    00:00 Вступление
    01:00 Создание моделей
    02:20 Связи моделей
    07:10 Создание DbContext
    09:10 Конфигурации моделей
    17:00 Регистрация DbContext в классе Program
    18:30 Миграции
    21:40 Репозитории
    24:00 Метод AsNoTracking
    29:00 Пагинация
    31:00 Добавление данных
    32:00 Обновление данных
    35:50 Удаление данных
    37:50 Работа с другими моделями
    39:40 Заключение

ความคิดเห็น • 86

  • @KirillSachkov
    @KirillSachkov  5 หลายเดือนก่อน +7

    Спасибо за просмотр! Пишите темы, по которых хотите видео! Мой телеграм канал - t.me/sachkov_blog

    • @SonicMusics
      @SonicMusics 5 หลายเดือนก่อน +2

      Наверно многим будет интересна тема авторизации и аутентификации

    • @KirillSachkov
      @KirillSachkov  5 หลายเดือนก่อน +1

      @@SonicMusics Планирую в скором времени сделать видео на эту тему, может и несколько, так как тема довольно большая

  • @777homosapien
    @777homosapien 3 หลายเดือนก่อน +6

    Урок хороший, молодец но 1) модели в доменку 2) не data access а persistence 3) Id проставиться по соглашению 4) В новых версиях Ef core связи тоже проставятся если они построены как у тебя 5) репозитории в ef core часто ругают и я тоже так как это репозиторий в репозитории, как Вы на своих проектах это реализовываете, у меня были проекты где использовался репозиторий и где нет, могу сказать что без репозитория было легче (если репозиторий то + паттерн спецификация) 5) пагинация в больших проектах это целое искусство с клоунами и костылями кто знает тот знает

  • @yakov.lopatin
    @yakov.lopatin 5 หลายเดือนก่อน +2

    Привет, посмотрел твои предыдущие ролики. Очень нравится контент, который ты делаешь. Видео как всегда оказалось супер полезным, однозанчно лайк🤝

  • @playvirtul5588
    @playvirtul5588 5 หลายเดือนก่อน +7

    Базированное видео про ef core, молодец!

  • @delfina9835
    @delfina9835 4 หลายเดือนก่อน +1

    Спасибо за урок, было интересно, полезно и приятно слушать! Удачи Вам в развитии канала, с нетерпением жду выход новых роликов.

  • @SonicMusics
    @SonicMusics 5 หลายเดือนก่อน +1

    Отличный урок, как раз по связям моделей интересовался. Однозначно лайк подписка. Хочу больше уроков.

  • @user-ez3yr4bf5l
    @user-ez3yr4bf5l 3 หลายเดือนก่อน +1

    Видос отличный: всё по делу, без жеванины + полезные объяснения👍

  • @Im_like_Merphy
    @Im_like_Merphy 3 หลายเดือนก่อน +1

    Очередное нереально крутое практическое видео, очень тяжело без практики понять о чем идет речь, когда читаешь теорию в интернете. Но ваши труды как глоток свежего воздуха...БЛАГОДАРЮ!

  • @mardul9087
    @mardul9087 หลายเดือนก่อน

    Все очень здорово, спасибо! Единственное, мне кажется, обновление все-таки лучше делать методом Update, обычно на вход подается объект (с изменениями), а не отдельные поля. А ExecuteUpdate больше подходит для массового обновления (как и ExecuteDelete)

  • @user-qp1bg7qw1s
    @user-qp1bg7qw1s 2 หลายเดือนก่อน +1

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

  • @PEREPELITSA_KIRILL
    @PEREPELITSA_KIRILL 4 หลายเดือนก่อน +1

    Спасибо большое тезка многое понял. Хорошо объясняешь все четко по делу.

  • @Easycore2000
    @Easycore2000 4 หลายเดือนก่อน +3

    По asp-у и реакту нужно больше практических видосов, а то кроме англо. блогеров и документации инфы почти нет. Желаю успехов!

  • @klapushev
    @klapushev 2 หลายเดือนก่อน +1

    Очень информативно получилось! Это определённо лукас👍

  • @rubiks7196
    @rubiks7196 4 หลายเดือนก่อน +1

    На счет Update2 прям круто, спасибо

  • @bekturtoktobekov6642
    @bekturtoktobekov6642 4 หลายเดือนก่อน +2

    Крутой урок. Хотелось бы видеть больше видео по web api advanced

  • @user-ex7gv8fy6l
    @user-ex7gv8fy6l 4 หลายเดือนก่อน +1

    Шикарный туториал. Можешь снять видео как делать тесты (викторины) с одним правильным вариантом, счетчиком тестов и свободным переключением между тестами (вопросами) и подсчетом результата в конце прохождения теста. Тесты берутся из базы данных. И было бы неплохо если бы ты показыва результат того, что ты накодирывал)

  • @julik_r
    @julik_r 5 หลายเดือนก่อน +3

    Классное видео, спасибо!

  • @AvianYpy
    @AvianYpy 2 หลายเดือนก่อน +1

    спасибо огромное за урок. сейчас как раз пишу диплом, из других гайдов как то не очень понятно, ведь все на конкретных примерах, или вообще чисто код пишут, объясняя это как:"пук-пук, это тула, это сюда, это для связи того метода с этим, вот, можно запускать наш гугл2". а у тебя все так быстро, четко, все понятно, прямо как с другом в дс посидел, и он мне всё объяснил, спасибо еще раз

  • @user-nr3vw4rd1m
    @user-nr3vw4rd1m 3 หลายเดือนก่อน +2

    Очень полезные и интересные видео, хотелось бы узнать как работать с Image на стороне сервера и как клиентскому приложению дать доступ к папке на стороне сервера

  • @user-ri2ts5vw4d
    @user-ri2ts5vw4d 3 หลายเดือนก่อน +1

    За сорок минут объяснил больше чем сеньор за две недели

  • @Winnni951
    @Winnni951 4 หลายเดือนก่อน +2

    Спасибо за видео, все очень понятно объясняешь! Я только начал изучать Entity Framework Core, понял как создаются сущности, миграции, связи и их работу с БД, но зачем я это написал так и не понятно.. Не мог ли ты создать продолжение этому видео, где будет дальнейшая работа с API и где ты будешь показывать, как ты с какого-то ресурса отсылаешь API, это все попадает в DataAccess.Postgress, данные меняются в БД и тд. Очень хочется понять для чего ты показал, как создается бэк и как это использовать. Если можешь, был бы безумно благодарен, так как ты очень классно объясняешь(я уже много видосов посмотрел про entity и rest API, так что знаю о чем говорю).

  • @klapushev
    @klapushev 2 หลายเดือนก่อน +2

    Хотелось бы ещё посмотреть как правильно делать Сервисы

  • @Enigma-mv6ss
    @Enigma-mv6ss 5 หลายเดือนก่อน +1

    Круто , хотел бы продолжение DDD , все супер

  • @lookat2868
    @lookat2868 4 หลายเดือนก่อน +1

    То что надо, сразу подписка и лайк

  • @user-ih3xv6mx5p
    @user-ih3xv6mx5p 3 หลายเดือนก่อน +1

    У тебя очень круто получается объяснять и показывать на примерах материал!! 👍👍
    Разбери плиз более глубоко миграции. Ну нету нигде этого контента по крайней мере на русском!
    Миграции это для меня боль, думаю и для многих.
    Вопросы, которые висят:
    Как настроить миграцию при смене структуры сущности?
    Если тебе нужно произвести вычисления при смене структуры сущности? (Пусть даже примитивно - у тебя появилось новое поле, а тебе нужно заполнить данными из старого поля)
    Как откатить один этап миграции, если всё упало?

  • @user-kj9qf4ri9q
    @user-kj9qf4ri9q 4 หลายเดือนก่อน +1

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

  • @Enigma-mv6ss
    @Enigma-mv6ss 5 หลายเดือนก่อน +4

    Можно видео про аггрегаты , sqrs реализация с mediator и без , value object , в принципи я все это понимаю но хотел бы видеть твои примеры очень хорошо объясняешь

    • @KirillSachkov
      @KirillSachkov  5 หลายเดือนก่อน +1

      Со временем обязательно будет

  • @kobakamladze4175
    @kobakamladze4175 4 หลายเดือนก่อน +1

    Успехов!

  • @user-ri2ts5vw4d
    @user-ri2ts5vw4d 3 หลายเดือนก่อน +1

    Хотелось бы увидеть доработку проекта, подключение всех зависимостей, опрокидывание IoC, до swagger и тестов

  • @user-ow1sd5mt6y
    @user-ow1sd5mt6y 5 หลายเดือนก่อน +2

    Очень крутой урок, спасибо. Недеюсь увидеть "Всё об ASP NET Core"😅

    • @KirillSachkov
      @KirillSachkov  5 หลายเดือนก่อน

      Всё будет со временем)

    • @user-ow1sd5mt6y
      @user-ow1sd5mt6y 5 หลายเดือนก่อน +1

      ​@@KirillSachkovКстати, круглая аватарка выглядит поприятнее как по мне.

    • @KirillSachkov
      @KirillSachkov  5 หลายเดือนก่อน

      @@user-ow1sd5mt6y хорошо, учту)

    • @Polite_person_
      @Polite_person_ 4 หลายเดือนก่อน +2

      Кстати да, на канале есть, но хотелось бы еще увидеть небольшой проект asp net core + react с авторизацией и работой с файлами.

  • @p.polunin
    @p.polunin 5 หลายเดือนก่อน +1

    Песня просто!

  • @user-ww9ig9zr1y
    @user-ww9ig9zr1y 4 หลายเดือนก่อน +1

    Очень круто объяснил и такой годной инфы на просторах интернета не так много! Спасибо!
    а почему тип данных в Id Guid, а не int?

    • @KirillSachkov
      @KirillSachkov  4 หลายเดือนก่อน

      С Guid больше возможностей, можно самому генерировать, где тебе удобно + исключается возможность создания дубликатов с одним и тем же ключом

  • @makc3682
    @makc3682 2 หลายเดือนก่อน

    Там по каким то правилам - если у тебя асинхронный метод, то его название должно оканчиваться на Async. Например Get должон быть в примере GetAsync, и пр.

    • @KirillSachkov
      @KirillSachkov  2 หลายเดือนก่อน

      Зависит от команды, где-то это опускается

  • @user-yo7mw6oj4p
    @user-yo7mw6oj4p 5 หลายเดือนก่อน +1

    Спастбо. Крадко, емко, нформативно. А приходилось работать Blazor?

    • @KirillSachkov
      @KirillSachkov  5 หลายเดือนก่อน +2

      Спасибо! Совсем немного, давно, сейчас основной стек это asp net core + react

    • @user-yo7mw6oj4p
      @user-yo7mw6oj4p 5 หลายเดือนก่อน

      @@KirillSachkov Отлично. Тоже хотел начать параленьно React. Тогда еще вопрос. А как внедрить React в уже существующие приложение net core Mvc?

    • @KirillSachkov
      @KirillSachkov  5 หลายเดือนก่อน +1

      Есть nuget пакеты для этого, на метаните есть статьи с внедрением react в mvc проект. По сути эти библиотеки позволяют использовать jsx файлы, но сразу скажу, что такой подход не лучший и конечно лучше делать api отдельно

    • @user-yo7mw6oj4p
      @user-yo7mw6oj4p 5 หลายเดือนก่อน

      @@KirillSachkov Спасибо.

  • @yava43
    @yava43 หลายเดือนก่อน +1

    База. А есть ли смысл оборачивать репозиторий в репозиторий ? =)) EF из коробки даёт UnitOfWork + DbSet который представляет из себя репозиторий

    • @KirillSachkov
      @KirillSachkov  หลายเดือนก่อน

      Есть смысл, когда сложная логика взаимодействия с бд

  • @ethrealroma
    @ethrealroma 2 หลายเดือนก่อน +1

    Привет.
    я уже имею свои проекты на гит хабе но я не могу разобраться со структурами данных можешь дать какие-то советы (Microsoft документацию читал и ничего не понял)
    ну и спасибо за объяснение по EF core

    • @KirillSachkov
      @KirillSachkov  2 หลายเดือนก่อน

      Почитай на метаните, там нормально объясняется

  • @user-ps5bt1dz4i
    @user-ps5bt1dz4i 4 หลายเดือนก่อน +1

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

    • @KirillSachkov
      @KirillSachkov  4 หลายเดือนก่อน

      Просто пишешь модель идентичную базе данных, можно использовать в конфигурации ColumnName или атрибут, чтобы указать название колонки для столбца

  • @Polite_person_
    @Polite_person_ 4 หลายเดือนก่อน +1

    ПОЖАЛУЙСТА НЕ ОСТАНАВЛИВАЙСЯ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • @user-zr5ys7yc4k
    @user-zr5ys7yc4k 4 หลายเดือนก่อน +1

    По поводу закольцованных ссылок, для сериализаторов есть настройка, чтобы избежать такого поведения

    • @KirillSachkov
      @KirillSachkov  4 หลายเดือนก่อน

      Я знаю, но лучше этого не допускать

    • @Artem-lk9ru
      @Artem-lk9ru หลายเดือนก่อน

      Подскажите пожалуйста как решить проблему закольцованных ссылок. Где почитать про это?

  • @SonicMusics
    @SonicMusics 5 หลายเดือนก่อน +1

    вопрос: все эти связи делаешь в слое DataAccess. А в слое Core их нет или они дублируются?

    • @KirillSachkov
      @KirillSachkov  5 หลายเดือนก่อน

      Вообще сначала создаются domain модели со всеми связями, объектами значения и тд, а потом уже под них проектируется модель для бд, которая может отличаться. Также используют подход, где domain модель и есть модель для бд

  • @user-ih3xv6mx5p
    @user-ih3xv6mx5p 3 หลายเดือนก่อน +1

    Кажется клава у тебя прикольная) Как называется? )

    • @KirillSachkov
      @KirillSachkov  3 หลายเดือนก่อน

      Varmilo va87m

    • @IsEmtyFact
      @IsEmtyFact 3 หลายเดือนก่อน

      12+ тысяч рублей, да... 😅

  • @javas206
    @javas206 3 หลายเดือนก่อน +1

    Привет! Весь смысл миграции в том чтобы классы превращались в таблицы? Просто я не очень понимаю, лично у меня есть проект asp net mvc где никакие миграции я не делаю, таблицы сами создаются исходя из классов моделей в mysql. Даже если я сам удаляю все таблицы, то они потом при первом заходе на сайт после удаления опять воссаздаются. Тогда в чем смысл миграций? Может я чего то не понимаю

    • @shavadre
      @shavadre หลายเดือนก่อน

      А куда у тебя данные деваются? Миграции придумали, чтобы данные в проде не терять. Если постоянно удалять/создавать БД - то никакие миграции не нужны, ты прав.

  • @Edgar-pu1lc
    @Edgar-pu1lc หลายเดือนก่อน +1

    а что если при обновлении допустим несколько полей отсутствуют(patch метод например),тогда что сделать ?

    • @KirillSachkov
      @KirillSachkov  หลายเดือนก่อน

      Другой метод использовать, через change tracker

  • @shavadre
    @shavadre หลายเดือนก่อน +1

    Почему никто и нигде не показывает как правильно обновлять сложные модели в EF? Везде детские примеры какие-то...

  • @esquire3868
    @esquire3868 2 หลายเดือนก่อน +1

    Уважаемый, список и массив это 2 разных типа данных, зачем в модели указывать, что список равен массиву?)

    • @KirillSachkov
      @KirillSachkov  2 หลายเดือนก่อน +1

      Уважаемый, прочитайте пожалуйста новые возможности C# 12, думаю, что гуглом вы умеете пользоваться

    • @esquire3868
      @esquire3868 2 หลายเดือนก่อน +1

      @@KirillSachkov Уважаемый, спасибо за открытие, не знал про нововведение)

  • @user-rv2yi3pt8b
    @user-rv2yi3pt8b 4 หลายเดือนก่อน +1

    Скажи как сделать такую же вижуалку, какие настройки у тебя?:

    • @KirillSachkov
      @KirillSachkov  4 หลายเดือนก่อน

      Просто установленная тема midnightlight

  • @itirush2701
    @itirush2701 4 หลายเดือนก่อน +1

    Какая у тебя клавиатура ?)

  • @p.polunin
    @p.polunin 5 หลายเดือนก่อน +1

    Может тебе задонатить?

    • @KirillSachkov
      @KirillSachkov  5 หลายเดือนก่อน

      Ну это тебе решать) Только пока некуда, со временем добавлю возможность поддержать меня)

  • @ugin-nb4sy
    @ugin-nb4sy 2 หลายเดือนก่อน +1

    Я заранее извиняюсь !! Для чего так погибать ради одно нативного SQL-скрипта схемы на создание базы данных и четыре на CRUD операции и строка подключения !!?? Это лень программиста SQL писать или философия Microsoft всё автоматизировать даже скрипты SQL ?? Или это графомания ?? Или это способ продать себя по дороже ?? Вот реально не понятно !! Я могу понять в случае аутентификации, что там за тебя создаются таблики и есть менеджер по работе с ними и это большой плюс, а вот при гибкой проектировки это вызывается много вопросов !!!

  • @fentan6806
    @fentan6806 2 หลายเดือนก่อน +1

    У тебя глаза не болят от такой цветовой схемы?

  • @user-cb8jr3rj7s
    @user-cb8jr3rj7s 3 หลายเดือนก่อน +1

    нам не нужны ваши фрейморки