• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

185
Vistas
Cómo pasar classProperty a LINQ usando expresiones

Tengo una consulta LINQ y quiero pasarle parámetros de persona. Probablemente debería ser algo como esto.

 Expression<Func<Person, long>> exp1 = person.CarId; Expression<Func<Person, long>> exp2 = person.PetId; var result = db.people.Select(x => new {PersonName = x.Name, EntityId = exp1}).ToList()

¿Cómo puedo hacerlo?

over 3 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

He usado IQueryble para reutilizar partes de consultas. Era algo como lo siguiente:

 var withPets = Get(GetWithPetId); List<WithEntityId> Get(Func<IQueryable<Person>, IQueryable<WithEntityId>> transformer) { transformer(db.People.Where(...)) .Where( x => x.EntityId > 100) .ToList(); } IQueryable<WithEntityId> GetWithPetId(IQueryable<Person> people) => people.Select(x => new WithEntityId(x.Name, x.PetId)); IQueryable<WithEntityId> GetWithCard(IQueryable<Person> people) => people.Select(x => new WithEntityId(x.Name, x.CarId));
over 3 years ago · Santiago Trujillo Denunciar

0

Vanilla EF no permite este tipo de consultas. Sugeriría usar LINQKit . Solo necesita configurar DbContextOptions :

 builder .UseSqlServer(connectionString) .WithExpressionExpanding(); // enabling LINQKit extension

Entonces puedes usar tus expresiones de la siguiente manera:

 var result = db.people .Select(x => new {PersonName = x.Name, EntityId = exp1.Invoke(x)}) .ToList()
over 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda