Principales respuestas
Columna suma de una tabla llamada Visitas dentro del Domain services class (Clase de servicio de dominio)

Pregunta
-
public IEnumerable<Visitas> GetNroVisitasGral(){var Total = (from v in ObjectContext.Visitaswhere v.cod_por == 1where v.cod_cat == 0where v.cod_scat == 0where v.cod_pro == 0select v.Hits).Sum();var SumaTotal = Total;//Aqui me sale error en la variable SumaTotalreturn SumaTotal;}
Respuestas
-
Hola
La consulta te está devolviendo un sólo valor puesto que realizas el Sum() de la columna v.Hits por lo tanto tu método no devuelve un IEnumerable<Visitas> sino un int o un float o double dependiendo de los valores que tienes en esa columna, por tal razón cambia el tipo de valor retornado public IEnumerable<Visitas> GetNroVisitasGral() por public int/double/float GetNroVisitasGral().
Edit: la consulta actual como la tienes puede regresar un int? o sea que puede ser nulo, por lo cual te aconsejo que cambies el tipo de consulta para que no pase eso, de pronto validando que v.Hits tenga un valor.
Saludos
Antonio Lobo
Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
Si la respuesta te ha sido util Votala.
Mi blog
- Propuesto como respuesta Josue YerayMVP, Moderator miércoles, 20 de julio de 2011 6:40
- Marcado como respuesta Eduardo PorteschellerModerator martes, 26 de julio de 2011 17:15
Todas las respuestas
-
Pregunta sobre el problema,
1. necesito saber si esta clase va dentro de la clase domain service??,
2. Me sale un error al retornar la variable SumaTotal, y el mensaje que sale es "No se puede convertir implicitamente el tipo 'int?' en System.Collections.Generic.IEnumerable<WCFGRCZEE.Web.grcbdmodelo.Visitas>"
-
Hola
La consulta te está devolviendo un sólo valor puesto que realizas el Sum() de la columna v.Hits por lo tanto tu método no devuelve un IEnumerable<Visitas> sino un int o un float o double dependiendo de los valores que tienes en esa columna, por tal razón cambia el tipo de valor retornado public IEnumerable<Visitas> GetNroVisitasGral() por public int/double/float GetNroVisitasGral().
Edit: la consulta actual como la tienes puede regresar un int? o sea que puede ser nulo, por lo cual te aconsejo que cambies el tipo de consulta para que no pase eso, de pronto validando que v.Hits tenga un valor.
Saludos
Antonio Lobo
Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
Si la respuesta te ha sido util Votala.
Mi blog
- Propuesto como respuesta Josue YerayMVP, Moderator miércoles, 20 de julio de 2011 6:40
- Marcado como respuesta Eduardo PorteschellerModerator martes, 26 de julio de 2011 17:15
-
Hola Antonio, primero quiero agracerte por la respuesta inmediata. Te cuento que he cambiado la clase como me dijiste por esta:
public int GetNroVisitasGral()
{
int Total = (from v in ObjectContext.Visitas
where v.cod_por == 1
where v.cod_cat == 0
where v.cod_scat == 0
where v.cod_pro == 0
select v.Hits).Sum().Value;
return Total;
}
Bueno aqui no me sale ningun error como aprecio, voy a probarlo como me muesta en la aplicacion.
muchas gracias