Менять формат даты внутри query C#

У меня есть следующий 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

Что возвращает это мне:

introducir la descripción de la imagen aquí

В 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; }

    }

Он возвращает мне то же самое, что и такое предыдущее:

introducir la descripción de la imagen aquí

Как я могу форматировать дату так что видят "мало лучше" вместо этого с "T0000000"? (я попробовал использовать .toDateShortString... но linq это не позволяет)

1
задан 09.03.2019, 19:07
1 ответ

ты можешь использовать 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
                    };
3
ответ дан 19.11.2019, 22:21

Теги

Похожие вопросы