Estoy encontrando algunas peculiaridades con LINQ to SQL.LINQ to SQL Peculiarities
Con una consulta relativamente simple, que desee seleccionar algunos campos, pero tienen los campos de fecha con formato de cadenas, que por primera vez logra así:
var list = dataContext.MyLists.Single(x => x.ID == myId);
var items = from i in list.MyItems
select
new
{
i.ID,
i.Sector,
i.Description,
CompleteDate = i.CompleteDate.HasValue ? i.CompleteDate.Value.ToShortDateString() : "",
DueDate = i.DueDate.HasValue ? i.DueDate.Value.ToShortDateString() : ""
};
Más tarde probé la siguiente consulta, que es exactamente lo mismo, excepto que estoy preguntando directamente de mi DataContext, en lugar de un elemento en mi primera consulta:
var items = from i in dataContext.MyLists
select
new
{
i.ID,
i.Sector,
i.Description,
CompleteDate = i.CompleteDate.HasValue ? i.CompleteDate.Value.ToShortDateString() : "",
DueDate = i.DueDate.HasValue ? i.DueDate.Value.ToShortDateString() : ""
};
el primero funciona muy bien, pero la segunda consulta produce un:
No se pudo traducir la expresión '...' en SQL y no se pudo tratar como una expresión local.
Si elimino las líneas que dan formato a la fecha, funciona bien. Si elimino la verificación .HasValue, también funciona bien, hasta que haya valores nulos.
¿Alguna idea?
Anthony
Parece que tiene dos consultas totalmente diferentes. Uno es seleccionar de MyItems en un objeto MyList. El segundo es seleccionar de los objetos MyList (no MyItems). ¿Los tipos de datos son los mismos para ambos? Es bastante difícil depurar esto sin saber cuáles son las estructuras de la tabla. – Bryant