none
Seleccionar registros de dos tablas con EntityFramework RRS feed

  • Pregunta

  • hola

    Nesecito contruir una funcion que  me devuelva los registros obtenidos de la consulta

    (Select A.* , B.* From FacturaDatos A Join FacturaDetail B ON A.FacturaId = B.FacturaId) de mi modelo de entidades algo asi tengo en mente

    EMCEntities1 Modelo = new EMCEntities1(); using (Modelo) { IQueryable<object> resultado = "CONSULTA QUE NESECITO"; }

    return rsultado;



    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    viernes, 28 de octubre de 2016 15:45

Respuestas

  • Hola Efrain,

    tienes dos posibilidades:

    1) la mas recomendada: crea una clase que tenga las propiedades para recibir los campos que quieres obtener y entonce tu IQueryable lo defines de esa clase, en ese caso tu consulta quedaria de este tipo:

    Iqueryable<MiClase> resultado = from a in Modelo.FacturaDatos join b in Modelo.FacturaDetail on a.facturaId equals b.facturaId

    select new MiClase {propiedad1=a.campo, propiedad2=b.campo ....};

    2) Si no quieres crear la clase puedes utilizar un tipo anonimo y tu consulta sería del tipo:

    var resultado = from a in Modelo.FacturaDatos join b in Modelo.FacturaDetail on a.facturaId on a.facturaId equals b.facturaId select new {a,b};

    Saludos

    Anibal Marcano

    viernes, 28 de octubre de 2016 16:44

Todas las respuestas

  • Hola Efrain,

    tienes dos posibilidades:

    1) la mas recomendada: crea una clase que tenga las propiedades para recibir los campos que quieres obtener y entonce tu IQueryable lo defines de esa clase, en ese caso tu consulta quedaria de este tipo:

    Iqueryable<MiClase> resultado = from a in Modelo.FacturaDatos join b in Modelo.FacturaDetail on a.facturaId equals b.facturaId

    select new MiClase {propiedad1=a.campo, propiedad2=b.campo ....};

    2) Si no quieres crear la clase puedes utilizar un tipo anonimo y tu consulta sería del tipo:

    var resultado = from a in Modelo.FacturaDatos join b in Modelo.FacturaDetail on a.facturaId on a.facturaId equals b.facturaId select new {a,b};

    Saludos

    Anibal Marcano

    viernes, 28 de octubre de 2016 16:44
  • Pruebo y te comento ...

    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    viernes, 28 de octubre de 2016 17:40
  • hola  Anibal Marcano ...  fijate en esto

    La Clase

     public class EngineEntity
        {
            public string FacturaId { get; set; }
            public string  Cliente { get; set; }
            public int? TipoFactura { get; set; }
            public double?  Monto { get; set; }
            public double? Impuesto { get; set; }
            public double? Total { get; set; }
            public string OrdenCompra { get; set; }
            public DateTime? Fecha { get; set; }
            public string Codigo { get; set; }
            public string Descripcion { get; set; }
            public double? Cantidad { get; set; }
            public double? Precio { get; set; }
            public double? SubTotal { get; set; }
        }

    El metodo ...en el where me dice que no se puede convertir implicitamente el tipo string en Bool

    public IQueryable<EngineEntity> FacturaInformacion(string FacturaId) { IQueryable<EngineEntity> valor; EMCEntities1 Modelo = new EMCEntities1(); using (Modelo) { valor = from a in Modelo.FacturaDatos join b in Modelo.FacturaDetail on a.FacturaId equals b.FacturaId

    where a.FacturaId = FacturaId select new EngineEntity { FacturaId = a.FacturaId, Cliente = a.Cliente, TipoFactura = a.TipoFactura, Monto = a.Monto, Impuesto = a.Impuesto, Total = a.Total, OrdenCompra = a.OrdenCompra, Fecha = a.Fecha, Codigo = b.Codigo, Descripcion = b.Descripcion, Cantidad = b.Cantidad, Precio = b.Precio, SubTotal = b.SubTotal }; } return valor; }



    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    sábado, 29 de octubre de 2016 12:25
  • El operador tiene que ser == no =
    sábado, 29 de octubre de 2016 13:04