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

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ม.ค. 2025

ความคิดเห็น • 32

  • @vinogradova619
    @vinogradova619 3 ปีที่แล้ว +7

    Спасибо. Да действительно вроде и задача простая, но когда начинаешь пробовать, то сталкиваешься с проблеммами. Попробую ваш метод.

    • @Kulibins1
      @Kulibins1  3 ปีที่แล้ว +3

      Всегда пожалуйста.

  • @LoganBigHat
    @LoganBigHat 6 หลายเดือนก่อน +1

    Мужик спасибо,мало роликов на эту тему,а тут внятно все объяснил показал,молодец

  • @АлексейКарасев-п2ж
    @АлексейКарасев-п2ж 3 ปีที่แล้ว +7

    Это просто нечто. Спасибо огромное!!!

    • @Kulibins1
      @Kulibins1  3 ปีที่แล้ว +3

      Пожалуйста. Рад что полезно 😊

  • @eqspertars4062
    @eqspertars4062 5 หลายเดือนก่อน +1

    Спасибо вам, Александр!

  • @СтаниславМихайлов-д5й
    @СтаниславМихайлов-д5й ปีที่แล้ว +3

    Странно, что так мало лайков, вполне внятно и доходчиво. Приятная речь, лайк однозначно, спасибо за вашу работу.

    • @Kulibins1
      @Kulibins1  ปีที่แล้ว +1

      Всегда пожалуйста.

  • @didartulepbergenov5699
    @didartulepbergenov5699 2 ปีที่แล้ว +1

    отличное объяснение, Александр!

    • @Kulibins1
      @Kulibins1  2 ปีที่แล้ว +1

      Спасибо 😊

    • @didartulepbergenov5699
      @didartulepbergenov5699 2 ปีที่แล้ว +1

      @@Kulibins1 можно задать вопрос? Когда в model мы прописываем модели, в каких случаях нам нужны справочники? То есть когда я могу просто прописать:
      public int ID {get;set;}
      public string Description {get;set;}
      Без ICollection и IList?
      И запись public Publisher Publisher {get;set;} пишется дважды из-за того что мы связываем таблицы?

    • @Kulibins1
      @Kulibins1  2 ปีที่แล้ว +1

      @@didartulepbergenov5699 да паблишер для связи таблиц. У вас может быть в другой сущности связь со справочником

    • @didartulepbergenov5699
      @didartulepbergenov5699 2 ปีที่แล้ว +1

      @@Kulibins1 а когда в моделях будет наследование от контекста? То есть почему не записано, как public class Book : DemoContext

    • @Kulibins1
      @Kulibins1  2 ปีที่แล้ว +1

      @@didartulepbergenov5699 модель и контекст это разные вещи, зачем модели от контекста наследоваться? Есть 2-а основных варианта моделей: 1) модель с данными без логики, 2)модель с логикой. Если мы говорим про модель с логикой, то скорее всего нужно использовать паттерн репозитория.

  • @gLozeen
    @gLozeen 8 หลายเดือนก่อน +1

    Мужик, прямо сейчас я готов тебя расцеловать!!!!! Лучший просто. Нигде не найти нормальных гайдов по этой херне, везде какую-то херь говорят. Методов 5 опробовал и только твой дал результат. Ещё раз говорю - лучший!!! ❤❤❤❤❤

    • @Kulibins1
      @Kulibins1  8 หลายเดือนก่อน +1

      спасибо

  • @aidarfachrutdinov
    @aidarfachrutdinov 11 หลายเดือนก่อน +1

    Спасибо интересно. А как быть при удалении объектов? К примеру когда у книги есть BookDetails и удаляем книгу(книга удалиться и за ней удалиться и BookDetails?). И еще один момент, как хранить историю изменения?

    • @Kulibins1
      @Kulibins1  11 หลายเดือนก่อน +1

      Удаляется через каскадное удаление. Историю нужно самостоятельно реализовывать, например через триггеры или просто в функции изменения в вашем беке в какую-то другую таблицу писать историю

  • @ashimov1970
    @ashimov1970 2 ปีที่แล้ว +1

    15:50 почему у списка сущностей такое же название как и у его элементов?

    • @Kulibins1
      @Kulibins1  2 ปีที่แล้ว +2

      Это не возбраняется + это необходимо лишь для обеспечения связи. Вы у себя в коде естественно делайте название как вам удобно. Очень много диаметрально противоположных методик именования и тут нет одной правильной для всех.

    • @ashimov1970
      @ashimov1970 2 ปีที่แล้ว +1

      @@Kulibins1 ок. По мере просмотра возник еще один вопрос (последний, ин ша Аллаh )) - юнит-тесты бэк-энда в случае использования EF Core становятся по сути интеграционными, т.е. каких-то дополнительных интеграционных сверх юнит-тестов при правильном подходе уже просто не имеет смысла делать, верно?

    • @Kulibins1
      @Kulibins1  2 ปีที่แล้ว +2

      @@ashimov1970 не совсем интеграционными, для этого нужно еще применить реальную базу данных с откатом из снапшота. Например для некоторых бд нет inmemory режима, а вот если есть, тогда будет интеграционный тест. Я больше с PostgreSql сейчас работаю, приходится делать дополнительные ухищрения.

    • @ashimov1970
      @ashimov1970 2 ปีที่แล้ว +1

      @@Kulibins1 спасибо! А есть у вас видео на эту тему?

    • @Kulibins1
      @Kulibins1  2 ปีที่แล้ว +2

      @@ashimov1970 в плане пока.

  • @vm7738
    @vm7738 2 ปีที่แล้ว

    спасибо! 😍😍

    • @Kulibins1
      @Kulibins1  2 ปีที่แล้ว

      Пожалуйста 😊

  • @Нерпа-Доисторическая
    @Нерпа-Доисторическая 2 หลายเดือนก่อน +1

    Тема наследования для отношения 1-к-0..1 не раскрыта.
    BookDetails можно наследовать от Book. Если в DbContext будут DbSet обоих типов, то Books.ToList вернёт сущности "правильных" типов, с учётом наследования. Т.е. коллекция будет содержать как экземпляры класса Book, так и BookDetails.

  • @sergeypinaev4376
    @sergeypinaev4376 3 ปีที่แล้ว +1

    Отличное видео. А можете рассказать как вы делаете миграции с помощью FluentApi, когда нужно добавить новые поля или таблицы в рабочую базу и какие подводные камни и тд, чтобы не повредить существующие данные?

    • @Kulibins1
      @Kulibins1  3 ปีที่แล้ว +1

      Уже давно хочу это видео снять.

  • @chuchelochuchelo1379
    @chuchelochuchelo1379 ปีที่แล้ว +1

    Если честно, я вот никак не могу понять, а зачем вообще описывать отношения через Fluent? Ну вот то есть, у нас автор имеет несколько книг, мы пишем - b.HasMany(a=>a.Books), но ведь мы в модели автора уже указали поле List, уже создалось отношение, разве нет? И, если мы удалим HasMany, всё ведь также будет работать, разве нет?

    • @Kulibins1
      @Kulibins1  ปีที่แล้ว +2

      Вот не всё так просто, как раз как начинаеш делать, начинаются проблемы, может в последних версиях entity, оно стало работать, нужно перепроверить.