Как не гидратировать ассоциации с помощью Entity Framework 5?

#entity-framework #.net-core-3.1

Вопрос:

Я учусь использовать .net core 3 и EF5 в небольшом проекте api. В настоящее время я не могу запросить сущность, получить отношения к этой сущности (2-й уровень), но избегать получения отношений для отношений (3-й уровень). Как я могу сказать EF5, чтобы он ничего не увлажнял после 2-го уровня ?

Вот (я думаю) важные части кода:

 //this is the current database query. I did change it more times than I  //can count in both hands, trying to make it work the way I want. //Not proud of getting the associations in a second line of code, instead  //of performing a single query Listlt;UserProfilegt; upl = _myCtx.UserProfile .Where(up =gt; up.User.Cpf == cpf) .Include("CrpUg") .ToList(); crpUgList.AddRange(upl.Select(up =gt; up.CrpUg));  

Моя учетная запись пользователя:

 public partial class UserProfile  {  public decimal Id { get; set; }  public string? Perfil { get; set; }  public decimal IdUser { get; set; }  public decimal IdProfile { get; set; }  public decimal IdCrpUg { get; set; }   public virtual User User { get; set; }  public virtual Profile Profile{ get; set; }  public virtual CrpUg CrpUnidadeGestora { get; set; }  public override string ToString()  {  return JsonConvert.SerializeObject(this);  }  }  

Моя сущность CrpUg:

 public partial class CrpUg  {  public decimal Id { get; set; }  public int Versao { get; set; }  public DateTime DataUltAlteracao { get; set; }  public string NmNome { get; set; }   public virtual ICollectionlt;UserProfilegt; UserProfiles { get; set; }  }  

Теперь мой контекстный файл:

 public partial class MyContext : DbContext  { public virtual DbSetlt;CrpUggt; CrpUg { get; set; } public virtual DbSetlt;UserProfilegt; UserProfile{ get; set; }  protected override void OnModelCreating(ModelBuilder modelBuilder)  { //...  modelBuilder.Entitylt;CrpUggt;(entity =gt;  {  entity.ToTable("CRP_UG");   entity.HasKey(e =gt; e.Id)  .HasName("PK__CRP_UG");   entity.Property(e =gt; e.Id)  .HasColumnName("ID")  .HasColumnType("numeric(19, 0)")  .ValueGeneratedOnAdd();   entity.Property(e =gt; e.DataUltAlteracao)  .HasColumnName("DATA_ULT_ALTERACAO")  .HasColumnType("datetime");   entity.Property(e =gt; e.NmNome)  .IsRequired()  .HasColumnName("NM_NOME")  .HasMaxLength(100)  .IsUnicode(false);   entity.Property(e =gt; e.Versao).HasColumnName("VERSAO");   });   modelBuilder.Entitylt;UserProfilegt;(entity =gt;  {  entity.HasKey(e =gt; e.Id);   entity.ToTable("USER_PROFILE");   entity.Property(e =gt; e.Id)  .HasColumnType("numeric(19, 0)")  .ValueGeneratedOnAdd()  .HasColumnName("ID_USER_PROFILE") .HasAnnotation("Relational:ColumnType", "numeric(19, 0)");   entity.Property(e =gt; e.IdUSER)  .HasColumnType("numeric(19, 0)")  .HasColumnName("ID_USER") .HasAnnotation("Relational:ColumnType", "numeric(19, 0)");   entity.Property(e =gt; e.IdProfile)  .HasColumnType("numeric(19, 0)")  .HasColumnName("ID_PROFILE") .HasAnnotation("Relational:ColumnType", "numeric(19, 0)");   entity.Property(e =gt; e.IdCrpUg)  .HasColumnType("numeric(19, 0)")  .HasColumnName("ID_UG") .HasAnnotation("Relational:ColumnType", "numeric(19, 0)");   entity.Property(e =gt; e.Perfil)  .HasMaxLength(5)  .IsUnicode(false)  .HasColumnName("PERFIL");   entity.HasOne(d =gt; d.User)  .WithMany(p =gt; p.UserProfiles)  .HasForeignKey(d =gt; d.IdUser)  .OnDelete(DeleteBehavior.NoAction)  .HasConstraintName("FK_USER_USER_PROFILE");   entity.HasOne(d =gt; d.Profile)  .WithMany(p =gt; p.UserProfiles)  .HasForeignKey(d =gt; d.IdProfile)  .OnDelete(DeleteBehavior.NoAction)  .HasConstraintName("FK_PROFILE_USER_PROFILE");   entity.HasOne(d =gt; d.CrpUg)  .WithMany(p =gt; p.UserProfiles)  .HasForeignKey(d =gt; d.IdCrpUg)  .OnDelete(DeleteBehavior.NoAction)  .HasConstraintName("FK_UG_USER_PROFILE");  });  }  }  

Когда я вызываю эту операцию, я получаю CrpUg массив, но это тоже чайлдс UserProfiles . Я хотел бы получить CrpUG список без этих детей. Как я могу выполнить этот запрос?

PS.: Мне пришлось переименовать столбцы и имена таблиц из-за характера проекта. Пожалуйста, скажите мне, если что-то не имеет смысла или если этого не хватает.