Всё об Entity Framework Core

Поделиться
HTML-код
  • Опубликовано: 19 сен 2024
  • В данном техтолке про EF Core мы пройдем по всему фреймворку от и до. Начнем с самого начала - с общего обзора, что это такое, и пойдём по порядку по всем важным темам: подходы к построению, подходы конфигурации, типы связей, запросы, миграции, seeding и всё это с подробными примерами с примерами. Запасайтесь чаем и снеками - выпуск будет объёмным.
    Код и презентация: github.com/Ole...
    Если хотите поддержать канал: pay.cloudtips....
    Мы в Telegram: t.me/platinum_...
    Чат для общения и вопросов: t.me/platinum_...

Комментарии • 101

  • @user-tv6gt9fg1f
    @user-tv6gt9fg1f 2 года назад +30

    18:18 настройка связи Code Convention
    20:30 настройка связи Data Annotation
    25:38 настройка связи Fluent API
    32:34 один ко многим
    49:28 один к одному
    1:02:10 многие ко многим
    1:09:37 заполнение бд
    1:22:00 select ы
    1:23:20 LINQ Method запрос
    1:38:48 LINQ Query Syntax запрос
    1:52:06 миграции
    2:18:10 Database first

    • @ForWorking-zy7wv
      @ForWorking-zy7wv 6 месяцев назад

      1:05:20 у меня ошибка необработанное исключение на строке Database.EnsureDeleted();
      System.InvalidOperationException: "Unable to determine the relationship represented by navigation property 'Curse.Users' of type 'ICollection'. Either manually configure the relationship, or ignore this property using the '[NotMapped]' attribute or by using 'EntityTypeBuilder.Ignore' in 'OnModelCreating'."
      Пытаюсь сделать связь многие ко многим как в видео показано, оно не хочет так делать
      Видимо мой Entity не хочет создавать таблицу сам, не знаю

  • @johnmorrison4096
    @johnmorrison4096 Год назад +15

    Челы, которым не нравится "ээээ", " аааа" комментатора, либо вы не программисты, либо позеры, идите крч на свой гуманитарий и дальше прячьте свои комплексы по тупоголовости.
    По видосу: Контент такого рода редкий и обычно, платный, поэтому спасибо огромное за туториал, разобрался хоть более менее в EF.

    • @vadimn6393
      @vadimn6393 5 месяцев назад +2

      Ну я "не программист" (по вашему определению) с 25-летним опытом (в американских, европейских, даже австралийских it компаниях). Года 2 не работал именно с EF заглянул чтобы быстро обновить знания по некоторым деталям.
      Но прошел мимо. Материала по EF как грязи, бесплатного, в том же ютубе. А слушать эти "аааа", "ээээ", шумное дыхание, слюнявое причмокивание - увольте. Если бы это были девушки, то еще ладно. Но я человек современный и не осуждаю, если все эти физиологические звуки кому-то приятно слушать и от парней (при наличии огромной альтернативы материалов по этой теме).

  • @konstantine_2761
    @konstantine_2761 2 года назад +33

    Хороший тон, рассказывая теорию сразу показывать ее на практике. Однако я, пришедший по названию Вашего видео и уже настроившись смотреть его целиком и полностью, ожидал прям если не все, то многое. Однако не увидел моментов про:
    1. подходы при использовании наследования.
    2. На том же собеседовании легко попросить назвать подходы по загрузке данных - Eager/Explicit/Lazy loading. Да, вы рассказали и показали их на примере. Но ни разу не сказали, что это так называется, чтобы человек не потерялся, услышал сей термин. Плюс здесь тоже есть корреляция с отслеживанием данных, а про это вообще ни слова.
    3. Поскольку звучали объяснения про IQueryable, хоть вскольз можно было кому-то напомнить, а кому-то и узнать про разницу в возвращении коллекции IE & IQ.
    4. Хоть немного на практике рассказать про фильтры уровня модели.
    5. Конечно работа EF Core и SQL запросов, в т.ч. вызов sp. Почему иногда нужно так делать, ну и т.д.
    6. Просто ознакомть с скомпилировнными запросами.
    В то же время я прекрасно понимаю, что даже поверхностно рассказать про моменты, упомянутые выше, займет ещё конкретный кусок времени, однако ваши тайминги и так вышли за 2 часа, поэтому, как я считаю, исходя из вашего названия, можно хоть 7 часов выложить, это будут все равно смотреть те, кому это интересно. Зато в таком ролике будет собрано превалирующее количество материала по данной теме.
    Ну вот это то, что сразу пришло в голову после просмотра всего видео.
    Опять же, вообще спасибо за то, что выложили сей материал, мой комментарий не воспринимайте как критику ни в коем случае, это мое субъективное мнение, спасибо.

    • @PlatinumTechTalks
      @PlatinumTechTalks  2 года назад +6

      спасибо большое за такой развернутый отзыв! нам это очень важно!

    • @andrexxelles
      @andrexxelles Год назад

      С каких пор критика попадает под вето ?

    • @fivepeopleintheworld
      @fivepeopleintheworld Год назад

      Лучший комментарий, благодарю)

  • @gioeffectpro
    @gioeffectpro 2 года назад +12

    Ребята, вы лучшие ! Дай бог вам здоровья !

  • @ThePowerWest
    @ThePowerWest 2 года назад +11

    Благодарю за такое подробное и информативное видео.
    Очень тяжело было для меня понять все это из других источников.
    Спасибо, что разжевали.
    Успехов вам!

  • @user-nj6ff9ko9u
    @user-nj6ff9ko9u 3 месяца назад +1

    САМОЕ ЛУЧШЕЕ ВИДЕО ПО ТЕМЕ КОТОРОЕ ПОКА ВСТРЕЧАЛ

  • @user-zx8dz1hn5d
    @user-zx8dz1hn5d Год назад +1

    Огромное спасибо! Всем бы преподам такую подачу материала! Всё супер! На пальцах, настолько просто, что любой поймёт , как использовать и для чего Entity Framework!

  • @light2night
    @light2night Год назад +1

    Спасибо. Отличный урок, я узнал много полезной информации которая облегчит мою роботу с Entity Framework. Эта штука мне понравилась, хотя по началу кажется довольно непонятной и запутаной

  • @larissasavchenko4101
    @larissasavchenko4101 Месяц назад

    стоящее видео. спасибо автору. успехов ему в преподавательской деятельности.

  • @LehusWV
    @LehusWV 2 года назад +10

    На 37-й минуте... Если в классе person сделать 2 свойства public int DepartmentId и public Department Department то в классе Department id не нужно переименовать, оно и так работает. Более того, если в классе person первое свойство назвать не DepartmentId, а OtdelId и второе свойство назвать Otdel при этом типы свойств оставить int и department, то оно тоже это поймет

  • @getcureone1461
    @getcureone1461 9 месяцев назад

    Огонь для новичков! И для таких как я, кому редко нужно взаимодействовать с EF Core и нужно быстро самую базу вспомнить

  • @danerinken9391
    @danerinken9391 2 года назад +1

    Всё максимально ясно и простым языком преподнесено. Информацию из данного видео довольно легко будет усвоить начинающим разработчикам. Благодарю за урок.

  • @linuxforbeginners5121
    @linuxforbeginners5121 11 месяцев назад

    Привет. Зацепило то что ваше видео намного больще по времени чем мы проходили на занятиях. Еще смотрел ваше видео для того чтобы увидеть тему под вашим углом зрения, так как не всегда представление учебной части понятно всем учеикам.

  • @yakoro4ka112
    @yakoro4ka112 Год назад +1

    Ребята, спасибо за труды. Все просто и понятно!

  • @avaloniuss
    @avaloniuss 2 года назад +2

    Спасибо! Очень полезный доклад!

  • @sergeysaviiskyi7329
    @sergeysaviiskyi7329 Год назад +1

    Отличная лекция с примерами! Спасибо большое!

  • @vitalyshevchenko5030
    @vitalyshevchenko5030 2 года назад +2

    Спасибо за качественную работу! Тема разобрана великолепно!

  • @denchikniki2741
    @denchikniki2741 2 года назад +4

    Спасибо. Отлично преподнесена тема!

  • @Дмитрийм-л7ф
    @Дмитрийм-л7ф 2 года назад +6

    Класс. Спасибо.

  • @petrnaboko8720
    @petrnaboko8720 2 года назад +1

    Огромное спасибо за труд! Отличный гайд!

  • @kl45gp
    @kl45gp 2 года назад +11

    1:09:25 конец инфы про отношения и подходы. Начало темы запросов.
    1:52:08 миграции

  • @vladimirl7413
    @vladimirl7413 Год назад +1

    Спасибо) Инфа лучше разжевана чем у топовых преподов с pluralsight

  • @КритерийПарето
    @КритерийПарето 2 года назад +2

    Наткнулся на Вас, воу, нашел алмаз на дне ютуба

  • @EugeneSkakun
    @EugeneSkakun 2 года назад

    Спасибо . Автору респект и уважуха

  • @riz2036
    @riz2036 2 года назад

    Спасибо большое за видео!!
    Очень помогла разобраться с темой!

  • @alexeymyasnichenko3318
    @alexeymyasnichenko3318 2 года назад +1

    Большое спасибо за доклад.

  • @СаняСанин-ш6у
    @СаняСанин-ш6у 2 года назад

    Просто блестяще!! Огромное спасибо!

  • @veranavrotskaya5484
    @veranavrotskaya5484 Год назад

    Есть в Москве Ленинградский проспект! Я рядом с ним живу ☺️
    Спасибо большое за видео! Супер классное!

  • @primatneuman
    @primatneuman 2 года назад +1

    огромнейшая благодарность

  • @topkek351
    @topkek351 2 года назад +6

    Чтобы удобнее запросы читать - ставь минимальный уровень логгирования:
    .LogTo(Console.WriteLine, LogLevel.Information);

  • @123qwead7
    @123qwead7 7 месяцев назад

    Спасибо за видео. Полезно.

  • @KINOSHOT999
    @KINOSHOT999 2 месяца назад +1

    На словах мэпится на объект классов все сразу понятно .
    Вы пытаетесь объяснить или сделать так что бы вообще никто ничего не понял ?

  • @antya1126
    @antya1126 4 месяца назад

    Спасибо за труд

  • @Ya_kruutoy
    @Ya_kruutoy Год назад

    Хоршая лекция, тут были рассмотренны многие подходы для работы с EF, для новичков самое то, но для старичков можно было и по глубже рассмотреть.Спасибо!

  • @winstochurgle9133
    @winstochurgle9133 2 года назад +3

    Парни,у кого будут проблемы вроде "No context was found", используйте такие команды:
    EntityFrameworkCore\Add-Migration Name
    EntityFrameworkCore\Update-Database

  • @smrsgv
    @smrsgv 2 года назад +5

    спасибо

  • @skypravda
    @skypravda 2 года назад

    Спасибо, это было эпично.

  • @iraklidavitaia
    @iraklidavitaia 2 года назад

    Спасибо. Было интересно 🤔

  • @КритерийПарето
    @КритерийПарето Год назад +1

    Золото на дне ютуба

  • @erickmanciny1352
    @erickmanciny1352 Год назад

    Потрясающее видео

  • @AgentsAI-hl6wt
    @AgentsAI-hl6wt 14 дней назад

    Топ!

  • @nkochubashev
    @nkochubashev 2 года назад

    Спасибо большое за содержательную полную подачу контента по EF Core!
    Код в этом видео, исключительно для демонстрации возможностей EF, но не применению на проекте. Например, нельзя использовать обновления данных при выборке данных, так как нарушается пратика CQRS.

  • @amirkamolov9049
    @amirkamolov9049 2 года назад

    На 51:30 когда рассказывали про связь один к одному забыли добавить навигационное свойство Address в классе Person. И в базе из-за этого не создалось ограничение

  • @nouchance
    @nouchance 2 года назад

    Thank you Bro!

  • @Enwix7777
    @Enwix7777 3 месяца назад

    ПОсле метанита, вживую еще раз закрепить знания самое то

  • @begemotik88888888
    @begemotik88888888 2 месяца назад

    Добрый день уточнение когда загружается мастер и подчиненная таблицы, например 10 мастер и в каждой детайл 100 то получается что 1000 загружается даже если пейдж инг ?

  • @Neo_for_my_chanel4782
    @Neo_for_my_chanel4782 2 года назад

    Круто!

  • @AnnaKomarova-g9e
    @AnnaKomarova-g9e 3 месяца назад

    Добрый день! Что нужно настроить, чтобы в браузере можно также как на видео работать с БД PostgreSql? Спасибо

    • @PlatinumTechTalks
      @PlatinumTechTalks  3 месяца назад

      Добрый день! Ответ от докладчика:
      1. поставить docker (Docker Desktop для Windows)
      2. запусть бд:
      docker run \
      -p 5432:5432 \
      --name container-postgresdb \
      -e POSTGRES_PASSWORD=admin \
      -d postgres
      3. запустить pgadmin: docker run \
      -p 5050:80 \
      -e "PGADMIN_DEFAULT_EMAIL=name@example.com" \
      -e "PGADMIN_DEFAULT_PASSWORD=admin" \
      -d dpage/pgadmin4
      4. открыть localhost:80
      И ввести такие параметры:
      name: container-postgresdb
      host: host.docker.internal
      database: postgres
      user: postgres
      password: admin

  • @АртемийКонь
    @АртемийКонь 2 месяца назад

    41:20 почему использовать литералы не очень хорошо? В голову только приходит если глобально поменяется имя класса может возникнуть ошибка.

  • @siera4333
    @siera4333 2 года назад +1

    Привет, у меня вопрос. Я не совсем понимаю почему, но EF не добавляет данные в базу, точнее так - данные есть, но они не отображаются в MSSQL менеджере. При добавлении и удалении данных всё работает как надо. Но таблицы в менеджере пустые. mdf файла в папке bin\Debag у меня нет

    • @saintefim9978
      @saintefim9978 Год назад

      Ты смог решить данную проблему ?

  • @yuryermolov13
    @yuryermolov13 2 года назад +1

    Можно поитересоваться почему в видео используется EF Core 5, а не EF Core 6?

    • @maflend2762
      @maflend2762 2 года назад +3

      Возможно потому что 6 версия ef используется только в. NET 6, который на момент выпуска видео только релизнулся

  • @botcser
    @botcser 10 месяцев назад

    Красапед!

  • @artak9439
    @artak9439 2 месяца назад

    1:44:42 Это работает только когда делаешь Include

  • @СергейГончаров-у6у
    @СергейГончаров-у6у 2 года назад

    С П А С И Б О !

  • @nesnes7621
    @nesnes7621 9 месяцев назад

    почему не получается EF core установить. пишет версия не та

  • @GUTAPUCT
    @GUTAPUCT 2 года назад +1

    А куда делся Вася-то?

  • @StepanGor
    @StepanGor Год назад

    А почему у меня string не допускает null ????

  • @nurlant4547
    @nurlant4547 2 года назад +2

    можно смотреть на скорости 2 ))

  • @alexmatveev7730
    @alexmatveev7730 Год назад

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

  • @ДенисЕгоров-ь3в
    @ДенисЕгоров-ь3в 2 года назад

    Насчет fluent API и атрибутов категорически не согласен. Я тоже начинал с fluent, но после создания десятков Entity и даже отдельных классов под них ты в любом случае будешь путаться.
    В то же время можно настроить на обязательную установку атрибутов для Entity и на этапе обновления модели EF ты уже будешь знать где забыл атрибут

  • @Яна-ъ5к
    @Яна-ъ5к Год назад +1

    Спасибо. Единственное что было тяжело слушать «эээ» и «ааа»

  • @АртемАрте-г5х
    @АртемАрте-г5х 2 года назад

    Какая-то у вас устаревшая информация из EF тел 5 назад. Никакой не нужно DepartmaentId делать в Departament. Достаточно просто Id как и во всех других сущностях.

  • @disol588
    @disol588 8 месяцев назад +1

    Без обид, но никакой системы. Лучше бы несколько мини-проектов с примерами. Больше понимания было бы. С формами никто походу работать не умеет и с PostgreSQL...
    Галопом пробежали без проектов. Нет чтобы загрузить готовую БД и обработать.
    Кто в C# будет пданные вписывать? Используют готовые таблицы обычно и обрабатывают. Только почему то именно это видимо не интересно 😅
    Удобно, если кто уже понимает и нужно или освежить память или момент какой то непонятный посмотреть...хотя тогда в коде проще... Не знаю, ожидала больше толку.😢

  • @ebaysher572
    @ebaysher572 2 года назад +1

    а можно сылку на сам доклад?

    • @OlegTar
      @OlegTar 2 года назад

      В гитхабе презентация

    • @ebaysher572
      @ebaysher572 2 года назад

      @@OlegTar официальная от майкрософт?

    • @OlegTar
      @OlegTar 2 года назад

      @@ebaysher572 официальная от Platinum Dev. в описании ссылка

    • @ebaysher572
      @ebaysher572 2 года назад

      @@OlegTar благодарю

  • @rx9646
    @rx9646 10 месяцев назад

    ruclips.net/video/eHayUiqBXK4/видео.html явная ошибка в интерпретации по наименованию полей, с чего это вдруг нельзя называть одноименно в разных сущностях. Можно называть ID и в классе персоны и в департаменте!!!

  • @Nik-cv5bi
    @Nik-cv5bi Год назад +1

    Хорошая презентация, вот только иногда сложно слушать лектора: "Тут ээээээ... ", " Указываем ааааааа.. ", "Настраиваем эээээээ.. "

  • @MultiVVL
    @MultiVVL 7 месяцев назад +1

    якщо прибрати усі еее, аааа, ооо, вот і давайте - відос був би значно менший

    • @PlatinumTechTalks
      @PlatinumTechTalks  6 месяцев назад

      можна просто прискорити відео =)

  • @nesnes7621
    @nesnes7621 9 месяцев назад

    Microsoft.EntityFramework обычный устанавливает только

    • @PlatinumTechTalks
      @PlatinumTechTalks  6 месяцев назад

      не тот тип проекта скорее всего

  • @light2night
    @light2night Год назад

    Если джуниору нужно знать ответы на вопросы по типу "Как создать связь много-ко-многим с дополнительными данными?", то я уже могу пробовать устраиваться на работу

  • @xy777top
    @xy777top 13 дней назад

    Очень жестокое видео, автор сильно избивает кнопку Enter

  • @dr1n
    @dr1n 2 года назад

    2ч + серьёзно?

  • @nesnes7621
    @nesnes7621 9 месяцев назад

    помогите

  • @Бойправ-ж8ы
    @Бойправ-ж8ы 15 дней назад

    вся эта энтети - херня полнейшая.

  • @orhanaliyev9774
    @orhanaliyev9774 Год назад

    Это пытка его слушать....он что подготовиться не мог, запинается,неуверенно говорит.

  • @Emperor_Of_Mankind_51
    @Emperor_Of_Mankind_51 2 года назад +1

    Ааа... Эээ... Ы... Ээээ.... Ааа... Эээ...
    Вот поменьше бы этих эканий, слушать было бы раза в 3 легче.

  • @nesnes7621
    @nesnes7621 9 месяцев назад

    Error Could not install package 'Microsoft.EntityFrameworkCore 6.0.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.7.2', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

    • @PlatinumTechTalks
      @PlatinumTechTalks  6 месяцев назад

      таргет проекта Framework потому что

    • @fentan6806
      @fentan6806 5 месяцев назад

      Ты если ставишь ef core на .net 7 выбирай версию не ласт, а начинающеюся на 7. Если на .net 6, то версию на 6