Оо, вы как знали о чем следующее видео снять) Как раз очень актуально для меня сейчас. Спасибо большое!
@SergeiCalabonga4 жыл бұрын
Отлично, значит не пропадут мои старания. :)
@SergeiCalabonga3 жыл бұрын
Это дар предвидения...
@МаксимГаранин-р7в4 жыл бұрын
Очень полезно! Интересно было бы узнать про реализацию слоя хранения данных, репозитории, UnitOfWork и т.п.
@SergeiCalabonga4 жыл бұрын
Много споров про это ходит по поводу, надо или не надо. На docs.microsoft.com есть хорошая статья про UnitOfWork.
@МаксимГаранин-р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в4 жыл бұрын
Кстати, что касается миграций, было бы интересно рассмотреть случай, когда есть уже работающая БД и надо сделать модель данных по ней, доработать и затем накатить миграции через SQL-скрипт. И вариант настольной базы (например, SQLite) для WPF-приложения, для которой надо накатывать миграции в динамике.
@SergeiCalabonga4 жыл бұрын
@@МаксимГаранин-р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в4 жыл бұрын
@@SergeiCalabonga По второму вопросу. Я имел в виду, что в случае настольных баз для настольных приложений, база SQLite является как бы файловым хранилищем и их может быть несколько (одна база на один проект). Получается, в этом случае, мы не можем прописать Update-Database, а должны (если надо) накатывать миграцию при открытии проекта, т.е. подключении к базе. И там есть какой-то метод у контекста, типа Database.Migrate().
@denisdol9353 жыл бұрын
спасибо за видео
@SergeiCalabonga3 жыл бұрын
Вэлком!
@learnz13733 жыл бұрын
Спасибо огромное
@SergeiCalabonga3 жыл бұрын
Пожалуйста!
@tanymoers33942 жыл бұрын
вопрос такой: как миграцией сделать foreign keys? связать таблицы
@SergeiCalabonga2 жыл бұрын
Связи создаются в классах.
@tanymoers33942 жыл бұрын
@@SergeiCalabonga спасибо, как раз это ищу, не могу найти
@SergeiCalabonga2 жыл бұрын
На официальном сайте EntityFramework.
@AzarovRom2 жыл бұрын
Спасибо за видео! есть вопрос Накидал ентитисы. Создал Init миграцию. после какого-то времени появилась необходимость поменять тип данных нескольких столбцов в трех таблицах. Создал новую миграцию, и после команды update-database он выдал ошибку "сущность 'название таблицы' уже есть в бд" Я в миграции init закоментировл все криейты и попробовал еще раз седалть апдейт и все нормально отработала, в дб тип поменялся и без ошибок Но есть ощущение что это не так должно работать. Хэлп((((
@SergeiCalabonga2 жыл бұрын
Старые миграции менять нельзя, надо создавать новые
@kandreyk91592 жыл бұрын
script-migration полезная команда посмотреть что ef отправит на сервер
@SergeiCalabonga2 жыл бұрын
👍
@ВладимирТретяк3 жыл бұрын
Добрый вечер. А возможны ли миграции из кода?Не используя консоль диспетчера nuget пакетов?
@SergeiCalabonga3 жыл бұрын
Миграции из кода? То есть runtime? Мне кажется это не имеет смысла. Если Режиме реального времени менять классы - это невозможно, а миграции без изменений данных не создать.
@ВладимирТретяк3 жыл бұрын
@@SergeiCalabonga Спасибо.
@SergeiCalabonga3 жыл бұрын
@@ВладимирТретяк рад помочь!
@имяфамилия-й1ж4ы3 жыл бұрын
@@SergeiCalabonga Рантайм, не рантайм, а вопрос как проворачивать Апдейт-Дэйтабэйз на стороне клиента остается открытым. Не ставить же ему на сервер вижуал студию и нее лезь же в ней в пиэм менеджер консоль... И sa пользователь это конечно хорошо, но не выдавать же каждому приложению по sa. Как вообще быть с пользователем для первой миграции и для последующих? Это же совершенно разные права доступа - первый на редактирование сервера для создания бд, последующие - на редактирование одной конкретной бд
@SergeiCalabonga3 жыл бұрын
@@имяфамилия-й1ж4ы Простите, ничего не понятно. Особенно сильно мешают понимаю англицизмы. Есть БД, есть миграции. Причем тут UI клиент?
@badboydessert3 жыл бұрын
Добрый день! Можно получить ваши шаблоны на микросервисы?
@SergeiCalabonga3 жыл бұрын
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 А еще на канале куча видео по их использованию.
@badboydessert3 жыл бұрын
@@SergeiCalabonga благодарю.
@SergeiCalabonga3 жыл бұрын
Рад помочь!
@saint82832 жыл бұрын
Странно, у меня большинство команд не работает, а если не написать "dotnet ef" то консоль вообще ругается. Еще и в разных видео разные команды пишут и разные нагеты подключают. Аааа, я хочу обратно на Laravel писать php artisan, а не вот это все. И вообще консоль в винде это для мазахистов. Просто десктопная прога нужна. P. S. Microsoft.EntityFrameworkCore.Tools у меня не хватало, хотя я устанавливал какие-то tools глобально через консоль.
@SergeiCalabonga2 жыл бұрын
Вперёд на php!
@saint82832 жыл бұрын
@@SergeiCalabonga Я бы с удовольствием сделал на Laravel+React, но мне для десктопа надо. Зачем меня сразу на PHP посылать? Может кто-нибудь знает почему у меня работает не так и ответят. Хотя к тому моменту в .NET опять все поменяется)))
@saint82832 жыл бұрын
@@SergeiCalabonga если ставить все пакеты как в видео, то все работает. Я просто пакет тулзов не установил, хотя какие-то тулзы я ставил через консоль "dotnet tool install --global dotnet-ef" думал это те же. Это наверно запасные))) Там тоже все работает, но синтаксис другой. Я хотел поставить все самое свежее, но как оказалось есть куча всего и в том числе под каждую БД есть разные пакеты. И каждый учит на свой лад. Это сильно путает когда пытаешься найти разные необходимые тебе аспекты в разных мануалах. Дело не в C#, я не впервые его вижу и знаю его достаточно глубоко.