У меня есть следующий query
:
SELECT ca.cod_parte,
pa.descripcion,
ca.rollo,
ma.fecha AS fechaIngreso,
pa.unidad,
ca.cantidad
FROM Casiller ca
INNER JOIN Partes pa ON pa.cod_parte=ca.cod_parte
INNER JOIN Det_materiales dt ON dt.rollo=ca.rollo
INNER JOIN Materiales ma ON ma.factura=dt.factura
WHERE ca.cod_parte='3141.39' AND ca.cantidad>0
ORDER BY fecha DESC
Что возвращает это мне:
В C# я использую тот же query, но использую EF:
//LISTADO DE NO ROLLOS SEGUN SU PARTE
public List listadoRollos(string cod)
{
var lista = new List();
using(var ctx=new ModelContext())
{
var query = from ca in ctx.Casillers
join pa in ctx.Partes on ca.cod_parte equals pa.cod_parte
join dt in ctx.Det_materiales on ca.rollo equals dt.rollo
join ma in ctx.Materiales on dt.factura equals ma.factura
where ca.cod_parte == cod && ca.cantidad > 0
orderby ma.fecha descending
select new mapeoRollos
{
rollo=ca.rollo,
descripcion=pa.descripcion,
fecha=ma.fecha,
unidad=pa.unidad,
disponible=ca.cantidad
};
lista = query.ToList();
}
return lista;
}
MAPEO
public class mapeoRollos
{
public string rollo { get; set; }
public string descripcion { get; set; }
public DateTime fecha { get; set; }
public string unidad { get; set; }
public double disponible { get; set; }
}
Он возвращает мне то же самое, что и такое предыдущее:
Как я могу форматировать дату так что видят "мало лучше" вместо этого с "T0000000"? (я попробовал использовать .toDateShortString... но linq это не позволяет)
ты можешь использовать SqlFunctions. DateName, чтобы форматировать дату, (для формата dd / мм / yyyy), и поскольку ma.fecha он datetime, вероятно, что продолжает добавлять час, как T00:00:00, измени это в string.
select new mapeoRollos
{
rollo = ca.rollo,
descripcion = pa.descripcion,
//fecha=ma.fecha,
fecha = SqlFunctions.DateName("day", ma.fecha) + "/" + SqlFunctions.DateName("month", ma.fecha) + "/" + SqlFunctions.DateName("year", ma.fecha)
unidad = pa.unidad,
disponible = ca.cantidad
};