Asp.net mvc 实体框架“System.DateTime”类型转换为“System.Byte[]”
我正在使用实体框架查询SQL Server数据库。具体而言,我正在尝试提取日期时间戳:Asp.net mvc 实体框架“System.DateTime”类型转换为“System.Byte[]”,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我正在使用实体框架查询SQL Server数据库。具体而言,我正在尝试提取日期时间戳: var sortedId = db.SensorDatas.OrderByDescending(model => model.Id).Select(model => model.stamp).Take(id).ToList(); 这将导致例外情况: The specified cast from a materialized 'System.DateTime' type to the 'Syst
var sortedId = db.SensorDatas.OrderByDescending(model => model.Id).Select(model => model.stamp).Take(id).ToList();
这将导致例外情况:
The specified cast from a materialized 'System.DateTime' type to the 'System.Byte[]' type is not valid.
如何创建日期时间戳字符串列表
编辑:
这就是表格的构造方式:
CREATE TABLE [dbo].[SensorData] (
[Id] INT NULL,
[stamp] DATETIME DEFAULT (getdate()) NOT NULL,
[data] FLOAT (53) NULL
);
以下是在代码中声明表/变量的方式:
public partial class SensorData
{
public Nullable<int> Id { get; set; }
public byte[] stamp { get; set; }
public Nullable<double> data { get; set; }
}
错误表示您正试图将DateTime值放入字节数组属性中。不涉及任何条件。我怀疑您的stamp属性是byte[]而不是DateTime。至于Take,它相当于TOP。我怀疑您是否希望检索与实体的IDPlease相同数量的记录,并验证戳记字段的类型。[TIMESTAMP]字段不包含时间值,它们包含用于版本控制和乐观并发的二进制值。2008年,该类型的名称改为ROWVERSION,但许多人仍然认为,通过将其读入一个字节,可以从中提取一些有意义的时间值array@PanagiotisKanavos-请参见编辑,这表明该戳记为日期时间格式。Take使用了一个名为id的变量,它与id不同,我知道这不是一个好的做法。我知道目前没有涉及任何字符串,但这正是我想要实现的,所有要读取并放入列表的日期时间字符串我认为您需要重构代码var sortedId=db.SensorDatas.orderbydowningmodel=>model.stamp.selectmodel=>model.stamp.ToList@user3238504邮票属性呢?这里没有涉及格式或字符串。消息说您试图将datetime存储到byte[]属性。邮票是什么类型的?