Неожиданные циклические ссылки в ядре Entity Framework при получении данных с помощью .Include()C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Неожиданные циклические ссылки в ядре Entity Framework при получении данных с помощью .Include()

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


I am working on a repository method in Entity Framework Core to retrieve all applications along with their associated application tokens. My method looks like this:

Код: Выделить всё

public async Task GetAllApplications(string? expand = null) {     List applications = await context.Applications.Include(a => a.ApplicationTokens).ToListAsync();     return mapper.Map(applications); } 
I expect the result to be a list of Application objects, each containing a list of ApplicationToken objects. Importantly, I do not expect the ApplicationToken objects to include back references to Application objects since I did not specify

Код: Выделить всё

.ThenInclude(t => t.Application)
in my query. Here are the entity definitions:

Код: Выделить всё

public class Application {     public int Id { get; set; }     public required string Name { get; set; }     public required string Description { get; set; }     public DateTime CreatedAt { get; set; }     public required int CreatedById { get; set; }     public User? CreatedBy { get; set; }     public ICollection? ApplicationTokens { get; set; }     public ICollection? FeatureGates { get; set; } } public class ApplicationToken {     public int Id { get; set; }     public required int ApplicationId { get; set; }     public required string Token { get; set; }     public required bool Enabled { get; set; }     public required DateTime CreatedAt { get; set; }     public required int CreatedById { get; set; }     public required DateTime ExpiresAt { get; set; }     public Application? Application { get; set; }     public User? CreatedBy { get; set; } } 
Before mapping to ApplicationDTO, I observed circular references between Application and ApplicationToken entities, which I aimed to avoid. My expectation was that the application tokens would be populated within each application without back references to the application itself, preventing any circular references. I have no lazy loading or virtual collections that could automatically populate these references.

What am I missing here?


Источник: https://stackoverflow.com/questions/781 ... g-data-wit
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Избегайте или контролируйте циклические ссылки в Entity Framework Core
    Anonymous » » в форуме C#
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Как решить проблемы с производительностью при использовании Entity Framework Core и Include() для больших объемов данных
    Anonymous » » в форуме C#
    0 Ответы
    94 Просмотры
    Последнее сообщение Anonymous
  • InvalidOperationException при получении объединенных данных с помощью Entity Framework на Blazor Server
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Entity Framework Core 8. Ошибка случайной ссылки на объект FindAsync @ System.Data.Entity.Core.Common.Internal.Materiali
    Anonymous » » в форуме C#
    0 Ответы
    44 Просмотры
    Последнее сообщение Anonymous
  • Entity Framework Core 8: метод IQueryable «Include» не найден
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

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