У меня есть отношение 1-много между двумя классами:
Родитель:
public class Parent
{
public string Id { get; set; }
public virtual IList<Child> Children{ get; set;
}
Ребенок:
public class Child
{
public string Key { get; set; }
public string Value { get; set; }
public virtual Parent Parent { get; set; }
}
Мне нужно отфильтровать экземпляры родительского класса на основе списка экземпляров дочернего класса. Критерием является выбор всех родителей, чей список детей содержит все записи в списке литературы. У меня есть следующий код:
IQueryable<Parent> parentsWithChildrenData = GetParentsWithChildren();
// Filter:
var referenceList = new List<Children>() { // Definition here };
parentsWithChildrenData
.Where(x => referenceList.All(o => x.Children.Contains(o, new ChildrenComparer()))).ToList();
Несмотря на то, что этот запрос верен, он занимает слишком много времени. Как я могу заставить это работать быстрее?