Entity-Framework многие-ко-многим в виде таблицы - PullRequest
0 голосов
/ 07 мая 2020

Извините, я давно не работал с ванильной EntityFramework. У меня есть несколько таблиц, которые содержат отношения "много ко многим".

public partial class Organization
{
    //...
    public virtual ICollection<aspnet_Roles> aspnet_Roles { get; set; }
}

Они связаны промежуточной таблицей в SQL, я хотел бы удалить роли из этой организации.

Я знаю, что могу удалить объекты из коллекции, однако мне нужно сделать это для нескольких других ссылок «многие-ко-многим», поэтому я бы предпочел не загружать все в память, чтобы удалить его из коллекции.

Когда я работаю над своими проектами дома, я просто добавляю фальшивое свойство в таблицу, чтобы EDMX генерировал все в виде таблицы, но я сомневаюсь, что у меня будет разрешение делать это на работе.

Я также не хотел бы запускать raw SQL или преобразовывать все для использования Code First.

Есть ли простой способ удалить ссылки из коллекции Без:

  1. Загрузка всего в память
  2. Сначала преобразование в код
  3. Выполнение необработанного SQL оператора

1 Ответ

1 голос
/ 07 мая 2020

Похоже, вам лучше всего создать хранимую процедуру в вашей модели EDMX, которая принимает первичный ключ (ключи) сущностей root в качестве входных параметров и делает ваше удаление logi c на стороне SQL . Единственный недостаток, который я вижу в этом решении, заключается в том, что вам все равно нужно запрашивать идентификаторы root сущностей / сущностей в памяти, но это не должно сильно снижать производительность.

Выполнение полного удаления logi c на стороне SQL - лучшее, что вы можете получить с точки зрения производительности.

Вот официальная документация, которая может помочь вам начать, если вы не знакомы с SP в EDMX. Хранимая процедура в EF

...