visual studio online framework ejemplos consulta conexion c# linq linq-to-sql

c# - studio - Excepción "linq de expresión de nodo de expresión no reconocido linq" en LINQ to SQL



linq to sql visual studio 2017 (2)

Aquí está mi LINQ en el que comparo un tipo de campo DateTime con fecha actual-

var srs = (from s in dcDistrict.ScheduledReportStatus where s.ReportConfigId.Equals(ConfigId) && s.Status.HasValue && s.Status.Value && (Convert.ToString(s.SentDate).Split('' '')[0]).Equals(Convert.ToString(DateTime.Now.Date).Split('' '')[0]) select s).FirstOrDefault();

este código está dando la excpetion "nodo de expresión no reconocido array index linq", ¿Estoy haciendo algo mal?


Filtra todo lo que puedas en el servidor y luego, lo que no puedes en el cliente.

var startDate = new DateTime(DateTime.Today.Year, 1, 1); var endDate = startDate.AddYears(1); var serverQuery = from s in dcDistrict.ScheduledReportStatus where s.SentDate >= startDate && s.SentDate < endDate && s.ReportConfigId.Equals(ConfigId) && s.Status.HasValue && s.Status.Value select s; var clientQuery = from s in serverQuery where // whatever client side filtering select s;


Obtuve la solución, lo que tengo que hacer es usar "AsEnumerable ()", aquí está la versión resuelta de mi LINQ-

Var srs = (from s in dcDistrict.ScheduledReportStatus.AsEnumerable() where s.ReportConfigId.Equals(ConfigId) && s.Status.HasValue && s.Status.Value && (Convert.ToString(s.SentDate).Split('' '')[0]).Equals(Convert.ToString(DateTime.Now.Date).Split('' '')[0]) select s).FirstOrDefault();

AsEnumerable () hizo una parte del cliente del código que resuelve mi problema.