Всё об Entity Framework Core
HTML-код
- Опубликовано: 19 сен 2024
- В данном техтолке про EF Core мы пройдем по всему фреймворку от и до. Начнем с самого начала - с общего обзора, что это такое, и пойдём по порядку по всем важным темам: подходы к построению, подходы конфигурации, типы связей, запросы, миграции, seeding и всё это с подробными примерами с примерами. Запасайтесь чаем и снеками - выпуск будет объёмным.
Код и презентация: github.com/Ole...
Если хотите поддержать канал: pay.cloudtips....
Мы в Telegram: t.me/platinum_...
Чат для общения и вопросов: t.me/platinum_...
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
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 не хочет создавать таблицу сам, не знаю
Челы, которым не нравится "ээээ", " аааа" комментатора, либо вы не программисты, либо позеры, идите крч на свой гуманитарий и дальше прячьте свои комплексы по тупоголовости.
По видосу: Контент такого рода редкий и обычно, платный, поэтому спасибо огромное за туториал, разобрался хоть более менее в EF.
Ну я "не программист" (по вашему определению) с 25-летним опытом (в американских, европейских, даже австралийских it компаниях). Года 2 не работал именно с EF заглянул чтобы быстро обновить знания по некоторым деталям.
Но прошел мимо. Материала по EF как грязи, бесплатного, в том же ютубе. А слушать эти "аааа", "ээээ", шумное дыхание, слюнявое причмокивание - увольте. Если бы это были девушки, то еще ладно. Но я человек современный и не осуждаю, если все эти физиологические звуки кому-то приятно слушать и от парней (при наличии огромной альтернативы материалов по этой теме).
Хороший тон, рассказывая теорию сразу показывать ее на практике. Однако я, пришедший по названию Вашего видео и уже настроившись смотреть его целиком и полностью, ожидал прям если не все, то многое. Однако не увидел моментов про:
1. подходы при использовании наследования.
2. На том же собеседовании легко попросить назвать подходы по загрузке данных - Eager/Explicit/Lazy loading. Да, вы рассказали и показали их на примере. Но ни разу не сказали, что это так называется, чтобы человек не потерялся, услышал сей термин. Плюс здесь тоже есть корреляция с отслеживанием данных, а про это вообще ни слова.
3. Поскольку звучали объяснения про IQueryable, хоть вскольз можно было кому-то напомнить, а кому-то и узнать про разницу в возвращении коллекции IE & IQ.
4. Хоть немного на практике рассказать про фильтры уровня модели.
5. Конечно работа EF Core и SQL запросов, в т.ч. вызов sp. Почему иногда нужно так делать, ну и т.д.
6. Просто ознакомть с скомпилировнными запросами.
В то же время я прекрасно понимаю, что даже поверхностно рассказать про моменты, упомянутые выше, займет ещё конкретный кусок времени, однако ваши тайминги и так вышли за 2 часа, поэтому, как я считаю, исходя из вашего названия, можно хоть 7 часов выложить, это будут все равно смотреть те, кому это интересно. Зато в таком ролике будет собрано превалирующее количество материала по данной теме.
Ну вот это то, что сразу пришло в голову после просмотра всего видео.
Опять же, вообще спасибо за то, что выложили сей материал, мой комментарий не воспринимайте как критику ни в коем случае, это мое субъективное мнение, спасибо.
спасибо большое за такой развернутый отзыв! нам это очень важно!
С каких пор критика попадает под вето ?
Лучший комментарий, благодарю)
Ребята, вы лучшие ! Дай бог вам здоровья !
Спасибо вам большое!
Благодарю за такое подробное и информативное видео.
Очень тяжело было для меня понять все это из других источников.
Спасибо, что разжевали.
Успехов вам!
САМОЕ ЛУЧШЕЕ ВИДЕО ПО ТЕМЕ КОТОРОЕ ПОКА ВСТРЕЧАЛ
Огромное спасибо! Всем бы преподам такую подачу материала! Всё супер! На пальцах, настолько просто, что любой поймёт , как использовать и для чего Entity Framework!
Спасибо. Отличный урок, я узнал много полезной информации которая облегчит мою роботу с Entity Framework. Эта штука мне понравилась, хотя по началу кажется довольно непонятной и запутаной
стоящее видео. спасибо автору. успехов ему в преподавательской деятельности.
На 37-й минуте... Если в классе person сделать 2 свойства public int DepartmentId и public Department Department то в классе Department id не нужно переименовать, оно и так работает. Более того, если в классе person первое свойство назвать не DepartmentId, а OtdelId и второе свойство назвать Otdel при этом типы свойств оставить int и department, то оно тоже это поймет
Огонь для новичков! И для таких как я, кому редко нужно взаимодействовать с EF Core и нужно быстро самую базу вспомнить
Всё максимально ясно и простым языком преподнесено. Информацию из данного видео довольно легко будет усвоить начинающим разработчикам. Благодарю за урок.
Привет. Зацепило то что ваше видео намного больще по времени чем мы проходили на занятиях. Еще смотрел ваше видео для того чтобы увидеть тему под вашим углом зрения, так как не всегда представление учебной части понятно всем учеикам.
Ребята, спасибо за труды. Все просто и понятно!
Спасибо! Очень полезный доклад!
Отличная лекция с примерами! Спасибо большое!
Спасибо за качественную работу! Тема разобрана великолепно!
Спасибо. Отлично преподнесена тема!
Спасибо вам!
Класс. Спасибо.
Вам спасибо!
Огромное спасибо за труд! Отличный гайд!
1:09:25 конец инфы про отношения и подходы. Начало темы запросов.
1:52:08 миграции
Отдельное место в Раю для Вас есть.
Спасибо) Инфа лучше разжевана чем у топовых преподов с pluralsight
спасибо большое!
Наткнулся на Вас, воу, нашел алмаз на дне ютуба
Спасибо . Автору респект и уважуха
Спасибо большое за видео!!
Очень помогла разобраться с темой!
Большое спасибо за доклад.
Просто блестяще!! Огромное спасибо!
Есть в Москве Ленинградский проспект! Я рядом с ним живу ☺️
Спасибо большое за видео! Супер классное!
огромнейшая благодарность
Чтобы удобнее запросы читать - ставь минимальный уровень логгирования:
.LogTo(Console.WriteLine, LogLevel.Information);
Спасибо за видео. Полезно.
На словах мэпится на объект классов все сразу понятно .
Вы пытаетесь объяснить или сделать так что бы вообще никто ничего не понял ?
Спасибо за труд
Хоршая лекция, тут были рассмотренны многие подходы для работы с EF, для новичков самое то, но для старичков можно было и по глубже рассмотреть.Спасибо!
Парни,у кого будут проблемы вроде "No context was found", используйте такие команды:
EntityFrameworkCore\Add-Migration Name
EntityFrameworkCore\Update-Database
спасибо
Спасибо!
Спасибо, это было эпично.
Спасибо. Было интересно 🤔
Золото на дне ютуба
Потрясающее видео
Топ!
Спасибо большое за содержательную полную подачу контента по EF Core!
Код в этом видео, исключительно для демонстрации возможностей EF, но не применению на проекте. Например, нельзя использовать обновления данных при выборке данных, так как нарушается пратика CQRS.
От куда вы берётесь?
На 51:30 когда рассказывали про связь один к одному забыли добавить навигационное свойство Address в классе Person. И в базе из-за этого не создалось ограничение
Thank you Bro!
ПОсле метанита, вживую еще раз закрепить знания самое то
Добрый день уточнение когда загружается мастер и подчиненная таблицы, например 10 мастер и в каждой детайл 100 то получается что 1000 загружается даже если пейдж инг ?
Круто!
Добрый день! Что нужно настроить, чтобы в браузере можно также как на видео работать с БД PostgreSql? Спасибо
Добрый день! Ответ от докладчика:
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
41:20 почему использовать литералы не очень хорошо? В голову только приходит если глобально поменяется имя класса может возникнуть ошибка.
Привет, у меня вопрос. Я не совсем понимаю почему, но EF не добавляет данные в базу, точнее так - данные есть, но они не отображаются в MSSQL менеджере. При добавлении и удалении данных всё работает как надо. Но таблицы в менеджере пустые. mdf файла в папке bin\Debag у меня нет
Ты смог решить данную проблему ?
Можно поитересоваться почему в видео используется EF Core 5, а не EF Core 6?
Возможно потому что 6 версия ef используется только в. NET 6, который на момент выпуска видео только релизнулся
Красапед!
1:44:42 Это работает только когда делаешь Include
С П А С И Б О !
почему не получается EF core установить. пишет версия не та
А куда делся Вася-то?
А почему у меня string не допускает null ????
можно смотреть на скорости 2 ))
спасибо за топик, но слушать иногда крайне сложно из-за оратора( такое чувство, что у него вот-вот батарейка сядет. прям местами умирающий лебедь
Насчет fluent API и атрибутов категорически не согласен. Я тоже начинал с fluent, но после создания десятков Entity и даже отдельных классов под них ты в любом случае будешь путаться.
В то же время можно настроить на обязательную установку атрибутов для Entity и на этапе обновления модели EF ты уже будешь знать где забыл атрибут
Спасибо. Единственное что было тяжело слушать «эээ» и «ааа»
Какая-то у вас устаревшая информация из EF тел 5 назад. Никакой не нужно DepartmaentId делать в Departament. Достаточно просто Id как и во всех других сущностях.
Без обид, но никакой системы. Лучше бы несколько мини-проектов с примерами. Больше понимания было бы. С формами никто походу работать не умеет и с PostgreSQL...
Галопом пробежали без проектов. Нет чтобы загрузить готовую БД и обработать.
Кто в C# будет пданные вписывать? Используют готовые таблицы обычно и обрабатывают. Только почему то именно это видимо не интересно 😅
Удобно, если кто уже понимает и нужно или освежить память или момент какой то непонятный посмотреть...хотя тогда в коде проще... Не знаю, ожидала больше толку.😢
спасибо за фидбек)
а можно сылку на сам доклад?
В гитхабе презентация
@@OlegTar официальная от майкрософт?
@@ebaysher572 официальная от Platinum Dev. в описании ссылка
@@OlegTar благодарю
ruclips.net/video/eHayUiqBXK4/видео.html явная ошибка в интерпретации по наименованию полей, с чего это вдруг нельзя называть одноименно в разных сущностях. Можно называть ID и в классе персоны и в департаменте!!!
Хорошая презентация, вот только иногда сложно слушать лектора: "Тут ээээээ... ", " Указываем ааааааа.. ", "Настраиваем эээээээ.. "
якщо прибрати усі еее, аааа, ооо, вот і давайте - відос був би значно менший
можна просто прискорити відео =)
Microsoft.EntityFramework обычный устанавливает только
не тот тип проекта скорее всего
Если джуниору нужно знать ответы на вопросы по типу "Как создать связь много-ко-многим с дополнительными данными?", то я уже могу пробовать устраиваться на работу
Очень жестокое видео, автор сильно избивает кнопку Enter
2ч + серьёзно?
помогите
получилось?
вся эта энтети - херня полнейшая.
Это пытка его слушать....он что подготовиться не мог, запинается,неуверенно говорит.
Ааа... Эээ... Ы... Ээээ.... Ааа... Эээ...
Вот поменьше бы этих эканий, слушать было бы раза в 3 легче.
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.
таргет проекта Framework потому что
Ты если ставишь ef core на .net 7 выбирай версию не ласт, а начинающеюся на 7. Если на .net 6, то версию на 6