При чтении типа сущности из моего DataContext
я получаю все связанные объекты, когда они мне не нужны.Как настроить EF так, чтобы я выполнял только явную загрузку?
Чтение информации msdn, например, здесь: https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-2-2/
Кажется, что я ничего не должен получить бесплатно, поэтому явная загрузкаЯ использую приведенный ниже код, но мои результаты больше, чем я ожидал.
public class TalesContext : DbContext
{
public TalesContext()
{
}
public TalesContext(DbContextOptions<TalesContext> options) : base(options)
{
}
protected internal DbSet<Story> Stories { get; set; }
protected internal DbSet<Event> Events { get; set; }
protected internal DbSet<StoryEventMention> EventMentions { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (optionsBuilder.IsConfigured) return;
optionsBuilder.UseInMemoryDatabase("TalesTesting");
}
}
public class Event
{
[Required]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public IList<StoryEventMention> EventMentions { get; set; }
[MaxLength(128)]
public string Title { get; set; }
}
var query = from e in TalesContext.Events select e;
// various query.Where
query = query.Skip((pageNumber - 1) * pageSize).Take(pageSize);
return query.ToList();
Я бы ожидал получить список событий с заполненными идентификаторами и заголовками и EventMentions как ноль,Однако я получаю EventMentions заполнены вместе со всеми дальнейшими свойствами навигации.Практически вся база данных теста.
Я получаю это, когда запускаю модульный тест и выставляю его через API.