.NET Core/EF Core Linq — получение объектов с определенным уровнем вложенностиC#

Место общения программистов C#
Ответить
Гость
 .NET Core/EF Core Linq — получение объектов с определенным уровнем вложенности

Сообщение Гость »


Предположим, у меня есть эти 3 модели:
[*]MainModel -> содержит коллекцию ModelA и коллекцию ModelB. [*]ModelA -> содержит коллекцию ModelA и коллекцию ModelB. [*]ModelB -> содержит коллекцию ModelA и коллекцию ModelB.
Поэтому они могут быть вложены на бесконечных уровнях (например, MainModel, который содержит 1 или более ModelA, и любой из них содержит другой ModelA > или ModelB, и любой из них содержит другой ModelA или ModelB и т. д.).

публичный класс MainModel { общественный ИНТ Id {получить; набор; } // навиг. реквизит общедоступный виртуальный ICollection ModelsA {get; набор; } общественный виртуальный ICollection ModelsB {get; набор; } } общедоступный класс ModelA { общественный ИНТ Id {получить; набор; } [ForeignKey("РодительскаяМодель")] публичный интервал? IdParentMainModel {получить; набор; } [ForeignKey("РодительскаяМодельА")] публичный интервал? IdParentModelA {получить; набор; } [ForeignKey("ParentModelB")] публичный интервал? IdParentModelB {получить; набор; } //nav.props общедоступная виртуальная ModelA ParentModelA {get; набор; } общедоступная виртуальная ModelB ParentModelB {get; набор; } общедоступный виртуальный ICollection ModelsA {get; набор; } общедоступный виртуальный ICollection ModelsB {get; набор; } } общедоступный класс ModelB { общественный ИНТ Id {получить; набор; } [ForeignKey("РодительскаяМодель")] публичный интервал? IdParentMainModel {получить; набор; } [ForeignKey("РодительскаяМодельА")] публичный интервал? IdParentModelA {получить; набор; } [ForeignKey("ParentModelB")] публичный интервал? IdParentModelB {получить; набор; } //nav.props общедоступная виртуальная ModelA ParentModelA {get; набор; } общедоступная виртуальная ModelB ParentModelB {get; набор; } общедоступный виртуальный ICollection ModelsA {get; набор; } общедоступный виртуальный ICollection ModelsB {get; набор; } } Я пытаюсь получить все MainModel из базы данных, которые содержат ElementsA и/или elementsB, например, с 4 уровнями вложенности. ..

Можно ли это сделать с помощью EF Core с помощью linq?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»