none
Consultas dinamicas dudas RRS feed

  • Pregunta

  • Hola como va, Estoy probando consultas dinámicas y me encuentro con la siguiente duda por ejemplo si realizo esta consulta

    var emp = dbcontext.RegistroMuestreo.Where("Empleado= PALOMARES ELSA MARTHA");

    me aparece error " No property or field 'PALOMARES' exists in type 'RegistroMuestreo'"

    si hago esto

     var emp = dbcontext.RegistroMuestreo.Where("Empleado=" +" PALOMARES ELSA MARTHA");

    me sale mismo error

    ahora cuando hago esto

    var emp = dbcontext.RegistroMuestreo.Where("Empleado=(\"" + "PALOMARES ELSA MARTHA" + "\")");
    se ejecuta bien. Ahora leyendo sobre linq.dinamic los ejemplos que se muestran aparecen simples como las primeras consultas que mostre, alguna pagina o ejemplos para leer como se construyen las consultas ya que quiero agregar mas complejidad desde ya gracias

    jueves, 15 de junio de 2017 15:27

Respuestas

  • Depende de lo que estés tratando de hacer. Si usas SQL nativo es distinto que si usas Entity-SQL:

    http://www.entityframeworktutorial.net/Querying-with-EDM.aspx

    Pero puede ser que no necesites ninguna de las dos cosas y que puedas montar tu consulta directamente con LINQ:

    var emp = from x in dbContext.LaTabla where x.Empleado == "PALOMARES ELSA MARTHA" select x;

    o con expresiones Lambda:

    var emp = dbcontext.LaTabla.Where(x => x.Empleado == "PALOMARES ELSA MARTHA");

    Y adicionalmente también se podría montar LINQ dinámico con árboles de expresiones.

    Todas las técnicas son viables pero usan distinta sintaxis, así que lo primero tienes que decidir cuál vas a usar, para poder ver cuál es la forma que corresponde al string de consulta.

    • Marcado como respuesta EnzoTuc40 martes, 20 de junio de 2017 12:04
    jueves, 15 de junio de 2017 20:54

Todas las respuestas

  • Básicamente lo que te falla en las dos primeras es que te faltan las comillas, porque el dato que buscas es de tipo string. En cambio se pone sin comillas cuando es numérico.

    var emp = dbcontext.RegistroMuestreo.Where("Empleado=\"PALOMARES ELSA MARTHA\"");

    jueves, 15 de junio de 2017 17:40
  • Básicamente lo que te falla en las dos primeras es que te faltan las comillas, porque el dato que buscas es de tipo string. En cambio se pone sin comillas cuando es numérico.

    var emp = dbcontext.RegistroMuestreo.Where("Empleado=\"PALOMARES ELSA MARTHA\"");

    Hola Alberto gracias por tu respuesta, y donde podria leer mas sobre la forma de armar el string de consulta por ejemplo, datos numéricos, fechas o agregar mas condiciones.
    jueves, 15 de junio de 2017 18:22
  • Depende de lo que estés tratando de hacer. Si usas SQL nativo es distinto que si usas Entity-SQL:

    http://www.entityframeworktutorial.net/Querying-with-EDM.aspx

    Pero puede ser que no necesites ninguna de las dos cosas y que puedas montar tu consulta directamente con LINQ:

    var emp = from x in dbContext.LaTabla where x.Empleado == "PALOMARES ELSA MARTHA" select x;

    o con expresiones Lambda:

    var emp = dbcontext.LaTabla.Where(x => x.Empleado == "PALOMARES ELSA MARTHA");

    Y adicionalmente también se podría montar LINQ dinámico con árboles de expresiones.

    Todas las técnicas son viables pero usan distinta sintaxis, así que lo primero tienes que decidir cuál vas a usar, para poder ver cuál es la forma que corresponde al string de consulta.

    • Marcado como respuesta EnzoTuc40 martes, 20 de junio de 2017 12:04
    jueves, 15 de junio de 2017 20:54