是sql'时间戳'列实际上是一个' byte []&#39 ;?

时间:2014-09-10 13:07:11

标签: c# sql-server entity-framework asp.net-mvc-5

EntityFramework将SQL Server timestamp列映射到Byte[]数组。因此,对于具有LastUpdate timestamp列的表,生成的模型属性为public byte[] LastUpdate

我的问题是如何将此属性转换为DateTime? 如果解决方案是将时间戳更改为日期时间,那么您无法帮助我。

2 个答案:

答案 0 :(得分:8)

SQL Server TIMESTAMP数据类型不是日期时间值,不应与其混淆。请记住,TIMESTAMPROWVERSION的同义词,应该这样对待。因此将它作为字节数组存储是最佳方式。

来自MSDN Documentation

  

rowversion数据类型只是一个递增数字而不是   保留日期或时间。要记录日期或时间,请使用datetime2   数据类型。

答案 1 :(得分:2)

是的,它是一个字节数组,不是它不是日期时间,如果你不喜欢用数组“播放”它,你可以将它转换为ulong

    var timestamp = BitConverter.ToUInt64(array, 0);