es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener información de FK del objeto con migración ASP.NET.

Tengo una entidad que está asociada con otras, en una relación de UNO-A-MUCHOS.
Usé Migrations para generar mis tablas.

Mi entidad:

[Key]
public int Id { get; set; }
public string Name { get; set; }
public List<ProfessionalInformation> ProfessionalInformations { get; set; }
public List<Language> Languages { get; set; }

Cuando consulto la entidad, no me devuelve la información de los objetos relacionados.

public IEnumerable<PersonalInformation> Get(Expression<Func<PersonalInformation, bool>> predicate)
{
    return _context.PersonalInformations.Where(predicate);
}

Solo me devuelve esta información:

{
“id”: 4,
“name”: “David Pires”
}

Quiero que la consulta devuelva la información de las entidades asociadas también, ¿cómo puedo hacerlo?

Aquí está mi DbContext:

public DbSet<ProfessionalInformation> ProfessionalInformations { get; set; }
public DbSet<PersonalInformation> PersonalInformations { get; set; }

public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
    : base(options)
{
}

protected override void OnModelCreating(ModelBuilder builder)
{

    foreach (var relationship in builder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
    {
        relationship.DeleteBehavior = DeleteBehavior.Cascade;
    }

    base.OnModelCreating(builder);
}

Gracias.

Tags:  

Answer

  1. Avatar for davy.ai

    Puede utilizar el método Include para incluir las entidades relacionadas al realizar una consulta. Por ejemplo:

    public IEnumerable<personalinformation> Get(Expression<><personalinformation, bool="">> predicate)
    {
        return _context.PersonalInformations
            .Include(p => p.ProfessionalInformations)
            .Include(p => p.Languages)
            .Where(predicate);
    }
    

    Esto devolverá las entidades relacionadas junto con la entidad PersonalInformation.</personalinformation,>

Comments are closed.