none
consulta select in RRS feed

  • Pregunta

  • Hola chic@s, tengo que hacer una consulta de este tipo 

    SELECT  [ID],[Nombre]
      FROM Regiones
      where parentid in (select id from regiones where parentid is null)

    Como puedo hacer esto con linq, he probado esto pero no me funciona, alguna idea?

     var query = from p in context.Regiones
                                where (from q in context.Regiones where q.ParentID==null select q.ID).Equals(p.ParentID)
                                select new IdValor() { Id = p.ID, Valor = p.Nombre };

    La tabla de regiones incluye un campo id, y un parentid. EL parent id is null para comunidades autonomas y para provincias su parentid, sera el id de la comunidad autónoma a la que pertenece.

    Muchas gracias.

    jueves, 7 de marzo de 2013 11:43

Respuestas

  • pero entonces para recuperar las comunidades autonomas usarias

    SELECT  [ID],[Nombre]
      FROM Regiones
      where  parentid is null

    y para recuperar las provincias usarias

    SELECT  R1.[ID], R1.[Nombre]
      FROM Regiones R1 INNER JOIN Regiones R2 ON R1.parentid = R2.id

    WHERE R2.ParentId is null 

    con un inner join deberias poder conseguir, por lo que un join en linq deberia poder resolverlo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta borja garcia jueves, 7 de marzo de 2013 15:08
    jueves, 7 de marzo de 2013 13:43

Todas las respuestas

  • Hola,

    Prueba utilizando el método Contains. Aquí te paso un artículo al respecto:

    http://geeks.ms/blogs/jorge/archive/2009/11/05/el-uso-de-contains-en-linq-in-or-not-in-en-sql.aspx

    Saludos.


    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.

    jueves, 7 de marzo de 2013 11:55
  • EL parent id is null para comunidades autonomas y para provincias su parentid, sera el id de la comunidad autónoma a la que pertenece.

    algo no queda claro, como es eso de un id nulo, estas definiendo la clave de la tabla nulable ? eso es una pesima idea, nunca, pero nunca una key puede ser null

    creo que deberias revisar el diseño porque algo lo veo bastante mal, cual es la clave de la tabla ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 7 de marzo de 2013 12:30
  • En la tabla hay un ID que siempre esta relleno para todos, y luego hay un parentid que permite nulos. Lo que hacemos es que las comunidades autonomas tendran id, pero su parent id sera null, las provincias tendran id y su parent id será el id de las comunidades autonomas a las que pertenecen, y las localidades tendran id y su parent id sera el id de la provincia a la que pertenecen.

    Espero haberme explicado.

    Muchas gracias JA, le echaré un ojo.

    Un saludo.

    jueves, 7 de marzo de 2013 12:43
  • pero entonces para recuperar las comunidades autonomas usarias

    SELECT  [ID],[Nombre]
      FROM Regiones
      where  parentid is null

    y para recuperar las provincias usarias

    SELECT  R1.[ID], R1.[Nombre]
      FROM Regiones R1 INNER JOIN Regiones R2 ON R1.parentid = R2.id

    WHERE R2.ParentId is null 

    con un inner join deberias poder conseguir, por lo que un join en linq deberia poder resolverlo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Marcado como respuesta borja garcia jueves, 7 de marzo de 2013 15:08
    jueves, 7 de marzo de 2013 13:43
  • Brillante Leandro, no había caido en eso.

    Muchas gracias.

    jueves, 7 de marzo de 2013 15:08