Миграции в EntityFramework Core

  Рет қаралды 4,455

Sergei Calabonga

Sergei Calabonga

Күн бұрын

Пікірлер: 43
@sergeiprudnikov1104
@sergeiprudnikov1104 4 жыл бұрын
Оо, вы как знали о чем следующее видео снять) Как раз очень актуально для меня сейчас. Спасибо большое!
@SergeiCalabonga
@SergeiCalabonga 4 жыл бұрын
Отлично, значит не пропадут мои старания. :)
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Это дар предвидения...
@МаксимГаранин-р7в
@МаксимГаранин-р7в 4 жыл бұрын
Очень полезно! Интересно было бы узнать про реализацию слоя хранения данных, репозитории, UnitOfWork и т.п.
@SergeiCalabonga
@SergeiCalabonga 4 жыл бұрын
Много споров про это ходит по поводу, надо или не надо. На docs.microsoft.com есть хорошая статья про UnitOfWork.
@МаксимГаранин-р7в
@МаксимГаранин-р7в 4 жыл бұрын
Я поискал и нашел старенькую статью docs.microsoft.com/ru-ru/aspnet/mvc/overview/older-versions/getting-started-with-ef-5-using-mvc-4/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application Это она?
@МаксимГаранин-р7в
@МаксимГаранин-р7в 4 жыл бұрын
Кстати, что касается миграций, было бы интересно рассмотреть случай, когда есть уже работающая БД и надо сделать модель данных по ней, доработать и затем накатить миграции через SQL-скрипт. И вариант настольной базы (например, SQLite) для WPF-приложения, для которой надо накатывать миграции в динамике.
@SergeiCalabonga
@SergeiCalabonga 4 жыл бұрын
@@МаксимГаранин-р7в Первая часть вопроса называется Reverse Engineering (подробности docs.microsoft.com/en-us/ef/core/managing-schemas/scaffolding?tabs=dotnet-core-cli). Что касается второй части, но никаких особенностей нет. EntityFramework Core - это всего "движок" (потому и Framework) и он создан для того, чтобы унифицировать процессы по управлению и работе с база данных. Провайдеры для этого движка, адаптируют конкретную БД для работы с EntityFramework Core. В списке провайдеров docs.microsoft.com/en-us/ef/core/providers/?tabs=dotnet-core-cli уже есть Microsoft.EntityFrameworkCore.Sqlite. Значит никаких различий нет. И, кстати, список провайдеров пополняется год от года.
@МаксимГаранин-р7в
@МаксимГаранин-р7в 4 жыл бұрын
@@SergeiCalabonga По второму вопросу. Я имел в виду, что в случае настольных баз для настольных приложений, база SQLite является как бы файловым хранилищем и их может быть несколько (одна база на один проект). Получается, в этом случае, мы не можем прописать Update-Database, а должны (если надо) накатывать миграцию при открытии проекта, т.е. подключении к базе. И там есть какой-то метод у контекста, типа Database.Migrate().
@denisdol935
@denisdol935 3 жыл бұрын
спасибо за видео
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Вэлком!
@learnz1373
@learnz1373 3 жыл бұрын
Спасибо огромное
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Пожалуйста!
@tanymoers3394
@tanymoers3394 2 жыл бұрын
вопрос такой: как миграцией сделать foreign keys? связать таблицы
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
Связи создаются в классах.
@tanymoers3394
@tanymoers3394 2 жыл бұрын
@@SergeiCalabonga спасибо, как раз это ищу, не могу найти
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
На официальном сайте EntityFramework.
@AzarovRom
@AzarovRom 2 жыл бұрын
Спасибо за видео! есть вопрос Накидал ентитисы. Создал Init миграцию. после какого-то времени появилась необходимость поменять тип данных нескольких столбцов в трех таблицах. Создал новую миграцию, и после команды update-database он выдал ошибку "сущность 'название таблицы' уже есть в бд" Я в миграции init закоментировл все криейты и попробовал еще раз седалть апдейт и все нормально отработала, в дб тип поменялся и без ошибок Но есть ощущение что это не так должно работать. Хэлп((((
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
Старые миграции менять нельзя, надо создавать новые
@kandreyk9159
@kandreyk9159 2 жыл бұрын
script-migration полезная команда посмотреть что ef отправит на сервер
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
👍
@ВладимирТретяк
@ВладимирТретяк 3 жыл бұрын
Добрый вечер. А возможны ли миграции из кода?Не используя консоль диспетчера nuget пакетов?
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Миграции из кода? То есть runtime? Мне кажется это не имеет смысла. Если Режиме реального времени менять классы - это невозможно, а миграции без изменений данных не создать.
@ВладимирТретяк
@ВладимирТретяк 3 жыл бұрын
@@SergeiCalabonga Спасибо.
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
@@ВладимирТретяк рад помочь!
@имяфамилия-й1ж4ы
@имяфамилия-й1ж4ы 3 жыл бұрын
@@SergeiCalabonga Рантайм, не рантайм, а вопрос как проворачивать Апдейт-Дэйтабэйз на стороне клиента остается открытым. Не ставить же ему на сервер вижуал студию и нее лезь же в ней в пиэм менеджер консоль... И sa пользователь это конечно хорошо, но не выдавать же каждому приложению по sa. Как вообще быть с пользователем для первой миграции и для последующих? Это же совершенно разные права доступа - первый на редактирование сервера для создания бд, последующие - на редактирование одной конкретной бд
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
@@имяфамилия-й1ж4ы Простите, ничего не понятно. Особенно сильно мешают понимаю англицизмы. Есть БД, есть миграции. Причем тут UI клиент?
@badboydessert
@badboydessert 3 жыл бұрын
Добрый день! Можно получить ваши шаблоны на микросервисы?
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
github.com/Calabonga/Microservice-Template github.com/Calabonga/Microservice-Template/wiki github.com/Calabonga/Microservice-Template/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B0 А еще на канале куча видео по их использованию.
@badboydessert
@badboydessert 3 жыл бұрын
@@SergeiCalabonga благодарю.
@SergeiCalabonga
@SergeiCalabonga 3 жыл бұрын
Рад помочь!
@saint8283
@saint8283 2 жыл бұрын
Странно, у меня большинство команд не работает, а если не написать "dotnet ef" то консоль вообще ругается. Еще и в разных видео разные команды пишут и разные нагеты подключают. Аааа, я хочу обратно на Laravel писать php artisan, а не вот это все. И вообще консоль в винде это для мазахистов. Просто десктопная прога нужна. P. S. Microsoft.EntityFrameworkCore.Tools у меня не хватало, хотя я устанавливал какие-то tools глобально через консоль.
@SergeiCalabonga
@SergeiCalabonga 2 жыл бұрын
Вперёд на php!
@saint8283
@saint8283 2 жыл бұрын
@@SergeiCalabonga Я бы с удовольствием сделал на Laravel+React, но мне для десктопа надо. Зачем меня сразу на PHP посылать? Может кто-нибудь знает почему у меня работает не так и ответят. Хотя к тому моменту в .NET опять все поменяется)))
@saint8283
@saint8283 2 жыл бұрын
​@@SergeiCalabonga если ставить все пакеты как в видео, то все работает. Я просто пакет тулзов не установил, хотя какие-то тулзы я ставил через консоль "dotnet tool install --global dotnet-ef" думал это те же. Это наверно запасные))) Там тоже все работает, но синтаксис другой. Я хотел поставить все самое свежее, но как оказалось есть куча всего и в том числе под каждую БД есть разные пакеты. И каждый учит на свой лад. Это сильно путает когда пытаешься найти разные необходимые тебе аспекты в разных мануалах. Дело не в C#, я не впервые его вижу и знаю его достаточно глубоко.
Микросервисы и DTO
10:22
Sergei Calabonga
Рет қаралды 3,9 М.
Эффективная работа с EntityFramework Core
23:38
Sergei Calabonga
Рет қаралды 10 М.
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 67 МЛН
Family Love #funny #sigma
00:16
CRAZY GREAPA
Рет қаралды 63 МЛН
Симбу закрыли дома?! 🔒 #симба #симбочка #арти
00:41
Симбочка Пимпочка
Рет қаралды 3,1 МЛН
HELP!!!
00:46
Natan por Aí
Рет қаралды 73 МЛН
Entity Framework Migrations Explained
36:53
dotnet
Рет қаралды 33 М.
Entity Framework Миграции. Лучшее для развития вашего продукта
16:01
Архитектор ПО. Александр Желнин
Рет қаралды 7 М.
Аутентификация: Используем JWT Bearer (OAuth 2.0)
38:33
Всё об Entity Framework Core
2:38:04
Platinum DEV
Рет қаралды 55 М.
Почему я не использую Entity Framework
30:19
Програмысли Влог
Рет қаралды 10 М.
ВСЯ БАЗА НАЧИНАЮЩЕГО ПРОГРАММИСТА ЗА 40 МИНУТ
41:34
Бинарный происк
Рет қаралды 18 М.
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 67 МЛН