public static List <Contacto> getAllContactos() { try { List <Contacto> result; using (CYC_PracticasEntities db = new CYC_PracticasEntities()) { //Llamada directa contra BBDD //result = db.Contacto.ToList(); //Llamada a procedimientos almacenados result = db.Database.SqlQuery <Contacto>("exec GetAllContactos").ToList <Contacto>(); foreach (Contacto contacto in result) { contacto.Direccion = DireccionDAL.getDireccionByGuid((Guid)contacto.UIDDireccion); } } return(result); } catch (Exception ex) { Console.Write(ex.ToString()); return(new List <Contacto>()); } }
//TODO: ver como cargar los objetos lazy public static Contacto getContactoByGuid(Guid contactoGuid) { try { Contacto result; using (CYC_PracticasEntities db = new CYC_PracticasEntities()) { //Llamada directa contra BBDD //result = db.Contacto.Find(contactoGuid); //result.Direccion = db.Direccion.Find((Guid)result.UIDDireccion); //result.Direccion.Pais = db.Pais.Find((Guid)result.Direccion.UIDPais); //result.Direccion.Provincia = db.Provincia.Find((Guid)result.Direccion.UIDProvincia); //Llamada a procedimientos almacenados var contactoGuidParameter = new SqlParameter("@UIDContacto", contactoGuid); //Tiene que haber una manera mejor de hacerlo... result = db.Database.SqlQuery <Contacto>("exec GetContactoById @UIDContacto ", contactoGuidParameter).ToList <Contacto>().FirstOrDefault(); result.Direccion = DireccionDAL.getDireccionByGuid((Guid)result.UIDDireccion); } return(result); } catch (Exception ex) { Console.Write(ex.ToString()); return(null); } }