Entity framework реализация патернов Relation.

  Рет қаралды 5,278

Архитектор ПО. Александр Желнин

Архитектор ПО. Александр Желнин

Күн бұрын

В этом видео покажу как создавать связи в базе данных используя Entity framework. Буду рассказывать о связях многие ко многим, один ко многим и один к одному.
Столкнулся с тем, что почти все кто начинает работать с EF, застревают при реализации таких связей.
Исходники:
github.com/Ale...

Пікірлер: 31
@eqspertars4062
@eqspertars4062 Ай бұрын
Спасибо вам, Александр!
@vinogradova619
@vinogradova619 3 жыл бұрын
Спасибо. Да действительно вроде и задача простая, но когда начинаешь пробовать, то сталкиваешься с проблеммами. Попробую ваш метод.
@Kulibins1
@Kulibins1 3 жыл бұрын
Всегда пожалуйста.
@LoganBigHat
@LoganBigHat 3 ай бұрын
Мужик спасибо,мало роликов на эту тему,а тут внятно все объяснил показал,молодец
@СтаниславМихайлов-д5й
@СтаниславМихайлов-д5й Жыл бұрын
Странно, что так мало лайков, вполне внятно и доходчиво. Приятная речь, лайк однозначно, спасибо за вашу работу.
@Kulibins1
@Kulibins1 Жыл бұрын
Всегда пожалуйста.
@АлексейКарасев-п2ж
@АлексейКарасев-п2ж 3 жыл бұрын
Это просто нечто. Спасибо огромное!!!
@Kulibins1
@Kulibins1 3 жыл бұрын
Пожалуйста. Рад что полезно 😊
@gLozeen
@gLozeen 4 ай бұрын
Мужик, прямо сейчас я готов тебя расцеловать!!!!! Лучший просто. Нигде не найти нормальных гайдов по этой херне, везде какую-то херь говорят. Методов 5 опробовал и только твой дал результат. Ещё раз говорю - лучший!!! ❤❤❤❤❤
@Kulibins1
@Kulibins1 4 ай бұрын
спасибо
@didartulepbergenov5699
@didartulepbergenov5699 2 жыл бұрын
отличное объяснение, Александр!
@Kulibins1
@Kulibins1 2 жыл бұрын
Спасибо 😊
@didartulepbergenov5699
@didartulepbergenov5699 2 жыл бұрын
@@Kulibins1 можно задать вопрос? Когда в model мы прописываем модели, в каких случаях нам нужны справочники? То есть когда я могу просто прописать: public int ID {get;set;} public string Description {get;set;} Без ICollection и IList? И запись public Publisher Publisher {get;set;} пишется дважды из-за того что мы связываем таблицы?
@Kulibins1
@Kulibins1 2 жыл бұрын
@@didartulepbergenov5699 да паблишер для связи таблиц. У вас может быть в другой сущности связь со справочником
@didartulepbergenov5699
@didartulepbergenov5699 2 жыл бұрын
@@Kulibins1 а когда в моделях будет наследование от контекста? То есть почему не записано, как public class Book : DemoContext
@Kulibins1
@Kulibins1 2 жыл бұрын
@@didartulepbergenov5699 модель и контекст это разные вещи, зачем модели от контекста наследоваться? Есть 2-а основных варианта моделей: 1) модель с данными без логики, 2)модель с логикой. Если мы говорим про модель с логикой, то скорее всего нужно использовать паттерн репозитория.
@aidarfachrutdinov
@aidarfachrutdinov 8 ай бұрын
Спасибо интересно. А как быть при удалении объектов? К примеру когда у книги есть BookDetails и удаляем книгу(книга удалиться и за ней удалиться и BookDetails?). И еще один момент, как хранить историю изменения?
@Kulibins1
@Kulibins1 8 ай бұрын
Удаляется через каскадное удаление. Историю нужно самостоятельно реализовывать, например через триггеры или просто в функции изменения в вашем беке в какую-то другую таблицу писать историю
@sergeypinaev4376
@sergeypinaev4376 2 жыл бұрын
Отличное видео. А можете рассказать как вы делаете миграции с помощью FluentApi, когда нужно добавить новые поля или таблицы в рабочую базу и какие подводные камни и тд, чтобы не повредить существующие данные?
@Kulibins1
@Kulibins1 2 жыл бұрын
Уже давно хочу это видео снять.
@chuchelochuchelo1379
@chuchelochuchelo1379 10 ай бұрын
Если честно, я вот никак не могу понять, а зачем вообще описывать отношения через Fluent? Ну вот то есть, у нас автор имеет несколько книг, мы пишем - b.HasMany(a=>a.Books), но ведь мы в модели автора уже указали поле List, уже создалось отношение, разве нет? И, если мы удалим HasMany, всё ведь также будет работать, разве нет?
@Kulibins1
@Kulibins1 10 ай бұрын
Вот не всё так просто, как раз как начинаеш делать, начинаются проблемы, может в последних версиях entity, оно стало работать, нужно перепроверить.
@vm7738
@vm7738 Жыл бұрын
спасибо! 😍😍
@Kulibins1
@Kulibins1 Жыл бұрын
Пожалуйста 😊
@ashimov1970
@ashimov1970 Жыл бұрын
15:50 почему у списка сущностей такое же название как и у его элементов?
@Kulibins1
@Kulibins1 Жыл бұрын
Это не возбраняется + это необходимо лишь для обеспечения связи. Вы у себя в коде естественно делайте название как вам удобно. Очень много диаметрально противоположных методик именования и тут нет одной правильной для всех.
@ashimov1970
@ashimov1970 Жыл бұрын
@@Kulibins1 ок. По мере просмотра возник еще один вопрос (последний, ин ша Аллаh )) - юнит-тесты бэк-энда в случае использования EF Core становятся по сути интеграционными, т.е. каких-то дополнительных интеграционных сверх юнит-тестов при правильном подходе уже просто не имеет смысла делать, верно?
@Kulibins1
@Kulibins1 Жыл бұрын
@@ashimov1970 не совсем интеграционными, для этого нужно еще применить реальную базу данных с откатом из снапшота. Например для некоторых бд нет inmemory режима, а вот если есть, тогда будет интеграционный тест. Я больше с PostgreSql сейчас работаю, приходится делать дополнительные ухищрения.
@ashimov1970
@ashimov1970 Жыл бұрын
@@Kulibins1 спасибо! А есть у вас видео на эту тему?
@Kulibins1
@Kulibins1 Жыл бұрын
@@ashimov1970 в плане пока.
Как автоматизировать правильный стиль кодя для базы данных
4:31
Архитектор ПО. Александр Желнин
Рет қаралды 1,4 М.
Please Help This Poor Boy 🙏
00:40
Alan Chikin Chow
Рет қаралды 23 МЛН
Офицер, я всё объясню
01:00
История одного вокалиста
Рет қаралды 5 МЛН
Почему я не использую Entity Framework
30:19
Програмысли Влог
Рет қаралды 10 М.
Эффективная работа с EntityFramework Core
23:38
Sergei Calabonga
Рет қаралды 10 М.
Thread → Task. Многопоточность и Асинхронность
13:39
Архитектор ПО. Александр Желнин
Рет қаралды 30 М.
Объясняю RxJS
1:01:18
Архитектор ПО. Александр Желнин
Рет қаралды 33 М.
Что такое нормализация баз данных?
24:02
Sergey Nemchinskiy
Рет қаралды 10 М.