none
Que significa it. en el where en consultas de EF RRS feed

  • Pregunta

  • var context = new websModelContainer();
    var categ = context.categorias.Where("it.id = 1");

    Que significa el it. veo por todos lados que debe ir ese sufijo en las consultas. Gracias

    viernes, 17 de febrero de 2012 4:13

Todas las respuestas

  • lo primero que observo es que no creo que este corrertamente definido ese codigo, porque no es en un string que defines una expresion lambda

    no sera algo como

    var categ = context.categorias.Where(it=>it.id == 1);

    o sea el it es el parametro de la expression para evaluar cada categoria dentro del where

    pero como lo has escrito dentro del string no lo veo bien

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 17 de febrero de 2012 11:21
  • Bien segun leo la informacion en foros, entiendo que ...

    context.categorias.Where(it=>it.id = 1);

    select from categorias where id = 1   al menos esa es la estrucura de una consulta.

    Algun link en donde explique entonces el funcionamiento de las consultas ¿? 
    Ah y gracias por lo de lambda .. no se que es .. pero ya es otro punto de referencia. Gracias nuevamente.

    viernes, 17 de febrero de 2012 13:28
  • Hola,

    La variable it se refiere a la entidad sobre la que se aplica la expresión lambda. Pues llamarse it como tambíen podrías llamarla categoria, como cualquier otra valiable:

    context.categorias.Where(categoria=>categoria.id = 1);

    Aquí te dejo algunos enlaces que espero te sean de ayuda:

    http://msdn.microsoft.com/es-es/library/bb397687.aspx

    http://www.esasp.net/2010/02/c-expresiones-lambda.html

    http://jsantillan.wordpress.com/2008/08/15/%C2%BFque-son-las-expresiones-lambda/

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solución de esta pregunta te ha sido útil.

    viernes, 17 de febrero de 2012 14:11
  • Hola gracias por su pronta respuesta, ahora hay alguna diferencia entre 

    context.categorias.Where("it.id = 1");

    context.categorias.Where(categoria=>categoria.id = 1);

    Ambos funcionan bien ..... es un tema de buenas practicas?

    viernes, 17 de febrero de 2012 14:40
  • Hola,

    Ambas opciones son validas, usando strings o expresiones lambda.

    La ventaja de no utilizar una cadena de texto es que la expresión viene tipada, de manera que si le cambias el nombre a una propiedad de tu objeto, tu programa no te compilaría y te darias cuenta del error al momento, mientras que con un string solo te darias cuenta en tiempo de ejecución cuando se ejecutara esa linea de código y saltara el error.

    Cuando utilizas it usando texto, se refiere a la instancia actual que utiliza el parseador de expresiones de linq, por lo que estas dos expresiones son identicas:

    context.categorias.Where("it.id = 1");
    
    context.categorias.Where("id = 1");

    Saludos,

    JA Reyes.


    Please remember to Vote & "Mark As Answer" if this post is helpful to you.
    Por favor, recuerda Votar y "Marcar como respuesta" si la solución de esta pregunta te ha sido útil.



    • Editado JA Reyes viernes, 17 de febrero de 2012 14:52
    • Propuesto como respuesta Nicoloco viernes, 17 de febrero de 2012 19:24
    viernes, 17 de febrero de 2012 14:50