使用Entity Framework将int timestamp转换为DateTime

时间:2015-08-07 10:02:25

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

我有一个数据库,其中列是int数据类型。列int值对应于自1980-01-01以来的秒数(MS-DOS时间戳)。

是否可以使用Entity Framework转换这些int值?如果不是那样做呢?转换需要高效。

我在我的控制器中尝试了以下SQL但是从客户端收到了JSON错误(Fiddler输出:JSON = -1):

public JsonResult GetData()
{
     var model = entities.Database.ExecuteSqlCommand(
        @"SELECT TOP 10 
                 dateadd(S, [timestamp], '1980-01-01') [datetime_conv], 
                 [value] 
            FROM [Data_2696415_20] AS tabel");

     return Json(model, JsonRequestBehavior.AllowGet);
 }

我正在使用Entity Framework 6.1版。

1 个答案:

答案 0 :(得分:2)

我会在实体类上放置一个额外的属性,它通过转换器获取原始的int值:

public partial class MyEntity
{
    public DateTime Date
    {
        get { return ConvertToDateTime(this.IntDate); }
    }
}