none
ADO.net entity framework, como hago pa seleccionar un objeto con dos llaves RRS feed

  • Pregunta

  •  

    para seleccionar un objeto del entity framework solo se crea un objeto y se lo busca por el codigo siguiente

    y sale, porq solo tiene una llave primaria

    p=new entity....();

    Producto p1 = p.Producto.First(p2 => p2.idproducto.Equals(txt_producto.Text));

    ............ahora cuando tiene dos llaves primaria intente hacer lo mismo, pero no me sale. 

    alguien sabe como buscar un objeto q tenga dos llaves primarias?


    lunes, 7 de enero de 2013 11:19

Respuestas

  • no puede suar metodos de conversion en LINQ t, porque al querer convertir el linq a sql no puede

    int idDetventa = int.Parse(txt_ID_Det_Venta.Text);
    int idventa= int.Parse(txt_Dev_IdVenta.Text)
    
     DetalleVenta dtventa = p.DetalleVenta.FirstOrDefault(p1 => (p1.idDetVenta== idDetventa ) && (p1.idvventa==idventa));


    convierte antes de armar el linq

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 7 de enero de 2013 13:22
  • Simplemente ponle un "and" en la expresión para que se comparen las dos columnas:

    Producto p1 = p.Producto.First(p2 => p2.idproducto==txt_producto.Text && p2.segundocampo==txtSegundoCampo.Text);

    • Marcado como respuesta jairzhino86 lunes, 7 de enero de 2013 14:38
    lunes, 7 de enero de 2013 11:32
  • ahora me sale este error

    LINQ to Entities no reconoce el método 'Int32 Parse(System.String)' del método, y este método no se puede traducir en una expresión de almacén.

    este es el codigo

     DetalleVenta dtventa = p.DetalleVenta.FirstOrDefault(p1 => (p1.idDetVenta==int.Parse(txt_ID_Det_Venta.Text)) && (p1.idvventa==int.Parse(txt_Dev_IdVenta.Text)));

    • Marcado como respuesta jairzhino86 lunes, 7 de enero de 2013 14:38
    lunes, 7 de enero de 2013 12:35
  • Gracias, me sirvio la respuesta.... como no me di cuenta!!! 

    :)

    • Marcado como respuesta jairzhino86 lunes, 7 de enero de 2013 14:38
    lunes, 7 de enero de 2013 14:38

Todas las respuestas

  • Simplemente ponle un "and" en la expresión para que se comparen las dos columnas:

    Producto p1 = p.Producto.First(p2 => p2.idproducto==txt_producto.Text && p2.segundocampo==txtSegundoCampo.Text);

    • Marcado como respuesta jairzhino86 lunes, 7 de enero de 2013 14:38
    lunes, 7 de enero de 2013 11:32
  • ahora me sale este error

    LINQ to Entities no reconoce el método 'Int32 Parse(System.String)' del método, y este método no se puede traducir en una expresión de almacén.

    este es el codigo

     DetalleVenta dtventa = p.DetalleVenta.FirstOrDefault(p1 => (p1.idDetVenta==int.Parse(txt_ID_Det_Venta.Text)) && (p1.idvventa==int.Parse(txt_Dev_IdVenta.Text)));

    • Marcado como respuesta jairzhino86 lunes, 7 de enero de 2013 14:38
    lunes, 7 de enero de 2013 12:35
  • no puede suar metodos de conversion en LINQ t, porque al querer convertir el linq a sql no puede

    int idDetventa = int.Parse(txt_ID_Det_Venta.Text);
    int idventa= int.Parse(txt_Dev_IdVenta.Text)
    
     DetalleVenta dtventa = p.DetalleVenta.FirstOrDefault(p1 => (p1.idDetVenta== idDetventa ) && (p1.idvventa==idventa));


    convierte antes de armar el linq

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 7 de enero de 2013 13:22
  • Gracias, me sirvio la respuesta.... como no me di cuenta!!! 

    :)

    • Marcado como respuesta jairzhino86 lunes, 7 de enero de 2013 14:38
    lunes, 7 de enero de 2013 14:38