我在SQL表中有一个date
字段,如果我尝试保存,则将它保存到我身上,无论是09-02-2019还是09-february-2019,但是尝试恢复该日期都显示出一些内容像这样(全部在一起或与T在一起):
2019-02-09 00:00:00:000
我正在尝试使用EF和LINQ恢复这些值,以便能够格式化日期,我尝试实现这一点:
我的班级中的日期属性
[Column(TypeName = "date")]
public DateTime? fechaInicio { get; set; }
[Column(TypeName = "date")]
public DateTime? fechaExpo { get; set; }
[Column(TypeName = "date")]
public DateTime? fechaEntrega { get; set; }
获取数据列表
//TRAER LISTA DE ORDENES
public List<mapOrdenesListaTemp> listadoOrdenes()
{
var lista = new List<mapOrdenesListaTemp>();
using(var ctx=new ModelContext())
{
lista = ctx.Ordenes.Select(m => new mapOrdenesListaTemp
{
fechaInicio=Convert.ToDateTime(m.fechaInicio).ToString("dd-mmmm-yyyy",CultureInfo.InvariantCulture),
fechaExportacion= Convert.ToDateTime(m.fechaExpo).ToString("dd-mmmm-yyyy", CultureInfo.InvariantCulture),
fechaEntrega= Convert.ToDateTime(m.fechaEntrega).ToString("dd-mmmm-yyyy", CultureInfo.InvariantCulture)
}).ToList();
}
我试图在此处分配数据(CLASS mapOrdenesListaTemp)
public class mapOrdenesListaTemp
{
public string fechaInicio { get; set; }
public string fechaEntrega { get; set; }
public string fechaExportacion { get; set; }
}
但是我得到这个错误:
System.NotSupportedException:'LINQ to Entities无法识别 方法'System.String ToString(System.String,System.IFormatProvider)' 方法,并且该方法无法转换为商店表达式。'
我知道我不能使用.ToString ()
,因为错误告诉我,但是如何恢复数据然后应用转换(我想将日期从2019-02-09
传递到{ {1}}?无论如何要解决此错误,我不知道我的代码是否正确?)
答案 0 :(得分:1)
错误消息很清楚。您无法在EF查询中设置日期格式,因为它无法转换为等效的sql。
或者,您可以执行以下操作:
lista = ctx.Ordenes.Select(m => new { m.fechaInicio, m.fechaExpo, m.fechaEntrega}).ToList();
var listWithFormattedDate = lista.Select(m => new mapOrdenesListaTemp
{
fechaInicio = m.fechaInicio?.ToString("dd-MMMM-yyyy",CultureInfo.InvariantCulture),
fechaExportacion= m.fechaExpo?.ToString("dd-MMMM-yyyy",CultureInfo.InvariantCulture),
fechaEntrega= m.fechaEntrega?.ToString("dd-MMMM-yyyy", CultureInfo.InvariantCulture)
}).ToList();
答案 1 :(得分:0)
使用时 1. DateTime数据类型,则该值将按以下示例存储 1998-01-02 10:10:50.600 2.日期数据类型,则将值存储为以下示例 1998-01-02 00:00:00.000 -时间字段将始终存在,但仍为00:00:00.000
在这种情况下,我的建议是将日期数据类型转换为字符串,同时在数据库中保存和从数据库中检索值