Возьмите следующее:
public class ClassA
{
public int ID { get; set; }
public ICollection<ClassB> ClassBs { get; set; }
public bool ChangeMe { get; set; }
}
public class ClassB
{
public int ID { get; set; }
public string test { get; set; }
public bool bar { get; set; }
public ClassA ClassA { get; set; }
public int ClassAID { get; set; }
}
У меня загружен объект ClassB, и я хочу запустить некоторый код, который выполняет несколько вещей, а затем меняет строку на true.
После того, как ясделали это, если у каждого ClassB в коллекции ClassBs класса A есть истина, я хочу изменить ClassA ChangeMe на true.
Итак, если у меня есть один ClassB, загруженный в объект с именем bla
, япопытался бы сделать следующее:
if (bla.ClassA.ClassBs.Where(x => x.bar == false).Count() == 0)
{
Do Something
}
Однако, несмотря на загрузку объектов ClassB, которые должны быть загружены, единственный, что у меня есть в соответствии с местными жителями, является текущим, и он, кажется, неожиданно принимает Do Something
,
Я попробовал следующее:
_context.Entry(bla).Reference(x => x.ClassA).Load()
_context.Entry(bla).Collection(x => x.ClassA.ClassBs).Load()
_context.Entry(bla.ClassA).Collection(x => x.ClassBs).Load()
И еще несколько, но, похоже, я получаю различные исключения.
За исключением простой загрузки другого объекта и вызова.Include()
обычным способом, есть ли способ достичь того, что я пытаюсь сделать?