Net Core: DBContext Override для запуска функциональности при изменении DBSet - PullRequest
0 голосов
/ 06 октября 2019

Есть ли способ, когда: ProductType Dbset изменяется каким-либо образом (вставка, обновление, удаление и т. Д.) Консоль пишет Hello.

В конце концов команда хочет добавить другие сложные функции. Я хочу это во время компиляции через переопределение, а не во время выполнения с отслеживанием и т.д. * Также необходимо учесть Add Entity Graph. https://www.entityframeworktutorial.net/entityframework5/add-entity-graph-using-dbcontext.aspx

Не хотел бы не быть на SaveChanges, так как ищет только несколько сущностей. Условие SaveChanges может повлиять на массовую производительность.

enter image description here Мы используем EF Net Core 2.2

Ответы [ 2 ]

1 голос
/ 06 октября 2019

Не могли бы вы проверить пакет nuget EntityFramework.Triggers

Ссылка: https://github.com/NickStrupat/EntityFramework.Triggers

Мы могли бы сделать что-то вроде ниже:

  var storeContext  = new CustomerStoreContext() { TriggersEnabled = true };

    Triggers<Product>.Inserting += entry =>
    {
      Console.WriteLine("Hello");
    };
0 голосов
/ 06 октября 2019

Вы можете переопределить SaveChanges () и проверить, затрагиваются ли какие-либо объекты, которые вас интересуют: Обратный вызов SaveChanges в EFCore? .

Если вы ищете решение для выполнениянекоторый код при изменении записей, но перед их сохранением в БД (например, когда вы вызываете Products.Add()), вы можете изменить свою базу кода на шаблон репозитория . Это дает вам дополнительный слой поверх контекста, где вы можете делать все, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...