如何转换DateTime?直接到String(在c#linq中)

时间:2016-06-07 18:59:57

标签: c# string linq datetime nullable

我正在制作一个网络服务,我正在调用直接通过linq创建的数据对象,我想知道,我如何转换DateTime?直接到字符串?,这个,因为我无法转换DateTime?到DateTime然后通过一个变量或一个不变量的字符串,因为linq不让我。

以下是代码:

lista = (from p in db.Acciones
     select new ItemAcciones
     {
        ID_Accion = p.ID_Accion,

        FechaHora =  p.FechaHora != null ? (DateTime)p.FechaHora : DateTime.Now,
        //ShowFechaHora = !String.IsNullOrWhiteSpace(((DateTime)p.FechaHora).ToString("HH:mm")) ? ((DateTime)p.FechaHora).ToString("HH:mm") : DateTime.Now.ToString("HH:mm"),

        ID_EmpresaNombre = p.Empresas.EmpresaNombre,
        ID_ResponsableNombre = p.Responsables.LoginID,
        ID_ContactoNombre = p.Contactos.Nombres + " " + p.Contactos.Paterno + " " + p.Contactos.Materno,
        ID_AccionTipoNombre = p.AccionTipos.AccionTipoGlosa,
        ID_AccionEstadoNombre = p.AccionEstados.AccEstGlosa,
        AccionGlosa = p.AccionGlosa, 
        ID_Empresa = p.ID_Empresa,
        AccionDescripcion = p.AccionDescripcion,
        ID_Negocio = (int?)p.ID_Negocio ?? 0,
        ID_Contacto = p.ID_Contacto,
        ID_AccionTipo = p.ID_AccionTipo,
        ID_AccionEstado = p.ID_AccionEstado,

        ID_ProgFecha = p.ID_ProgFecha != null ? (int)p.ID_ProgFecha : 0,
        ShowID_ProgFecha = String.IsNullOrWhiteSpace(p.ID_ProgFecha.ToString()) ?? p.ID_ProgFecha.ToString() : "--/--/----",
        //ShowID_ProgFecha = StringAEstilizarComoDate(Convert.ToString(p.ID_ProgFecha)),

        ID_ProgHora = p.ID_ProgHora != null ? (int)p.ID_ProgHora : 0,
        //ShowID_ProgHora = StringAEstilizarComoHora(Convert.ToString(p.ID_ProgHora)),

        ID_EjecFecha = p.ID_EjecFecha != null ? (int)p.ID_EjecFecha : 0,
        //ShowID_EjecFecha = StringAEstilizarComoDate(Convert.ToString(p.ID_EjecFecha)),

        ID_EjecHora = p.ID_EjecHora != null ? (int)p.ID_EjecHora : 0,
        //ShowID_EjecHora = StringAEstilizarComoHora(Convert.ToString(p.ID_EjecHora)),

        ID_Responsable = p.ID_Responsable,
        EmpresaRUTCompleto = p.Empresas.EmpresaRut.ToString() + "-" + p.Empresas.EmpresaDV,
        ID_NegocioNombre = p.Negocios.ProyectoNombre,
     }).ToList();

任何有关改进问题的问题,建议或评论都将受到赞赏。

1 个答案:

答案 0 :(得分:-1)

这是一个手动解决方案,但您可以使用SqlFunction来处理Date的字符串。

var qqqq = db.YourTable.Select(q => (q.YourDate == null ? "" : (SqlFunctions.DateName("day",q.YourDate) + "/" + SqlFunctions.DateName("month", q.YourDate) + "/" + SqlFunctions.DateName("year", q.YourDate) + " " + SqlFunctions.DateName("hour", q.YourDate) + " " + SqlFunctions.DateName("minute", q.YourDate)))).ToList();

希望有所帮助。 =)