none
Consulta Orden detalle en Entity Framework C# RRS feed

  • Pregunta

  • Buenos dias a todos.

    tengo una consulta para Uds. tengo un par de tablas maestro detalle, como sabemos ambas se relacionan por el Id

    ahora quiero mostrar en un informe para imprimir la orden y su detalle. estoy  usando Entity Framework.

    y me gustaría ver cual es la mejor forma de traerlos desde la base de datos Sql server.

    por favor me pueden ayudar con ejemplos.

    gracias

    Roberto Melgar

    viernes, 3 de abril de 2020 15:23

Respuestas

  • hola

    Sino recuerdo mal creo que tenias que agregar el

    using System.Data.Entity

    para que el Include() se pueda definir con un lambda

    Despues en el FirstOrDefault() arregle el codigo pero se usa ==

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 3 de abril de 2020 19:50

Todas las respuestas

  • Hola Roberto C. Melgar

     

    Gracias por levantar tu consulta en los foros de MSDN. Con respecto a la misma, vamos a darte seguimiento e investigaremos para buscar la mejor respuesta para ti.

     

    Gracias por usar los foros de MSDN.

     

    Luis Diego Mora

     ____

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

     

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

     

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.


    viernes, 3 de abril de 2020 16:23
    Moderador
  • hola

    >>quiero mostrar en un informe para imprimir la orden y su detalle.

    que tool usas para el informe ?

    >>estoy  usando Entity Framework.

    entonces es simple

    var result = _dbcontext.TablaMaestro
                           .Include(x=>x.TablaDalle)
                           .FirstOrDefault(x=>x.Id == id);

    de esta forma obtienes la entidad de la tabla maestro con sus detalles

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 3 de abril de 2020 16:34
  • Leandro de antemano gracias.

    ahora que lo menciona y en el entendido que uno elije herramienta dependiendo de sus requerimientos, le pregunto que me aconseja usar el nativo de Visual Studio o Crystal Report, yo pensaba usar Crystal Report.

    y ahora con relación a la pregunta, en lo personal me gusta trabajar con métodos ya que trabajo con capas.

    supongamos que tengo estas clases

    MaestroVenta

    Detalleventa

    yo pensaba hacer lo siguiente, crear una clase Maestrodetalle y ahí hacer el método, o tal vez en cada clase hacer su propio método y luego en el botón unir las consultas.

    por favor cual es la mejor buena practica.

    y cual sería el tipo o firma del método por favor 

    agradezco por la colaboración.

    Roberto

    viernes, 3 de abril de 2020 18:06
  • hola

    >>le pregunto que me aconseja usar el nativo de Visual Studio o Crystal Report, yo pensaba usar Crystal Report.

    recomendaria Reporting Service en modo local, usando un .rdlc

    >>crear una clase Maestrodetalle y ahí hacer el método

    porque esa clase? se supone que si trabajas en capas deberias tener una clase de negocio que retorne los datos de reporte usara

    >>cada clase hacer su propio método y luego en el botón unir las consultas.

    No uses metodos separados, en una unica operacion debes devolver el maestro y su detalle

    >>cual sería el tipo o firma del método

    Si usas entity framework se supone que las entidades se relacionan por eso use el Include() en mi respuesta anterior, entonces seria

    public class ReportesBussinesLogic {
    
        public EntidadMaestro ObtenerMaestro(int id){
    
             return_dbcontext.TablaMaestro
                                      .Include(x=>x.TablaDalle)
                                      .FirstOrDefault(x=>x.Id == id);
    
        }
    
    }


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    viernes, 3 de abril de 2020 18:17
  • Muy bien Leandro, pero ahora haciendo conforme a lo que indica.

    me sale este error.

    parece que solo a mi me ocurren estas cosas.

    que puedo hacer, donde podría estar el error por favor.

    mis clases son estas

     public partial class tblMaestroVenta
        {
            public int Id { get; set; }
            public string NumeroVenta { get; set; }
            public System.DateTime FechaVenta { get; set; }
            public Nullable<int> IdCliente { get; set; }
            public double ValorVenta { get; set; }
            public int IdUsuario { get; set; }
        
            public virtual tblCliente tblCliente { get; set; }
        }
    
     //detalle
    public partial class tblDetalleVenta
        {
            public int Id { get; set; }
            public int IdtblMaestroVenta { get; set; }
            public int IdProducto { get; set; }
            public int IdUnidadMedida { get; set; }
            public int IdCategoria { get; set; }
            public decimal Precio { get; set; }
            public int Cantidad { get; set; }
            public decimal ValorFila { get; set; }
        
            public virtual tblCategoria tblCategoria { get; set; }
            public virtual tblProducto tblProducto { get; set; }
            public virtual tblUnidad tblUnidad { get; set; }
        }

    la verdad no se como resolver esto, ya que parece sencillo de hacer esta consulta.

    Gracias

    Roberto

    viernes, 3 de abril de 2020 19:19
  • hola

    Sino recuerdo mal creo que tenias que agregar el

    using System.Data.Entity

    para que el Include() se pueda definir con un lambda

    Despues en el FirstOrDefault() arregle el codigo pero se usa ==

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 3 de abril de 2020 19:50
  • muchas Gracias Leandro, efectivamente faltaba eso.

    ojala no tenga problemas con las otras tablas relacionadas ya que en el detalle no guarde el código o la descripción del producto, solamente el Id y pues no voy a mostrar el Id sino la descripción.

    Gracias muy amable.

    con seguridad que seguiré molestando por lo de Report Service, ahora estoy leyendo la documentación e instalando

    Gracias.

    Roberto

    viernes, 3 de abril de 2020 20:23
  • Hilo Cerrado.

    Gracias por usar los foros de MSDN

    viernes, 3 de abril de 2020 21:43
    Moderador