Эффективный метод обнаружения, если у объекта есть внешние ключи, указывающие на него в Entity Framework 6 - PullRequest
0 голосов
/ 25 октября 2019

Я работаю над проектом EF6, в котором мне нужно определить, есть ли у сущности зависимости при извлечении сущности. Мне нужно, чтобы это произошло быстро при возврате списка из более чем 10000 объектов.

Например:

class A 
{
    string Name;
    int AId;
}

class B 
{
    int BId;
    int AId;

    public virtual A A { get; set; }
}

class C 
{
    int CId;
    int AId;

    public virtual A A { get; set; }
}

Примечание: все три класса находятся в разных проектах и ​​контекстах БД, и из-за этого я не могу создать обратную ссылку.

Приложениесоздает список из тысяч объектов A, и мне нужно знать в этом списке, был ли на элемент ссылается B или C. Фактически мне нужно иметь возможность определить, можно ли удалить этот элемент. Я не могу сделать, как предлагали другие темы, и пытаюсь удалить элемент, просто чтобы проверить, можно ли его удалить. Это займет слишком много времени. Есть ли другой способ сделать это быстро в EF6? Я мог бы также присоединиться к B и C, однако могут быть миллионы Bs или C, в дополнение к 10000+ As, этот запрос также займет слишком много времени.

Выполнение этого быстрее, чем приведенные выше методы, может невозможно, так как я не знаю, как SQL Server обрабатывает внешние ключи, но любая помощь приветствуется.

...