Почему Entity Framework возвращает для свойства пустую коллекцию вместо нуля?C#

Место общения программистов C#
Anonymous
Почему Entity Framework возвращает для свойства пустую коллекцию вместо нуля?

Сообщение Anonymous »

У меня есть модель Entity Framework, имеющая следующее свойство:
public List? VanMapEventTypes { get; set; }

Затем я читаю объект, используя:
var @event = await dbContext.Events
.Include(e => e.ApptShifts)
.Include(e => e.Occurrences)
.Include(e => e.Owner)
.Include(e => e.Parent)
.FirstOrDefaultAsync(e => e.Id == updateEvent.EventId, stoppingToken);

Это возвращает @event.Parent.VanMapEventTypes == пустое значение List().
Если я добавлю:
var @event = await dbContext.Events
.Include(e => e.ApptShifts)
.Include(e => e.Occurrences)
.Include(e => e.Owner)
.Include(e => e.Parent)
.ThenInclude(o => o.VanMapEventTypes)
.FirstOrDefaultAsync(e => e.Id == updateEvent.EventId, stoppingToken);

Затем он возвращает @event.Parent.VanMapEventTypes с ожидаемыми 11 элементами в списке List().
Почему он не возвращает @event.Parent.VanMapEventTypes == null при первом вызове?

public class Organization
{
public int Id { get; private set; }
public List? VanMapEventTypes { get; set; }
// lots of other properties

public Organization(string uniqueId)
{
ArgumentException.ThrowIfNullOrEmpty(uniqueId);

Enabled = true;
Private = false;
Deleted = false;

UniqueId = uniqueId;
// initialize this because the data is in the Campaign table so logically its never null.
Address = new Address();

VanMapEventTypes = new List();
}
}

public class Event
{
public int Id { get; private set; }
public Organization Parent { get; set; }
// lots of other properties
}

public class MapInterestToVanType
{
public int Id { get; private set; }
public string InterestName { get; set; }
public string VanEventTypeName { get; set; }
}


Подробнее здесь: https://stackoverflow.com/questions/789 ... -for-a-pro

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