首页 文章

SQL 'time'在实体框架代码中输入

提问于
浏览
21

我正在尝试使用Entity Framework Code First在表中创建'time(7)'列 . 这是我的实体:

public class ShiftDetail
{
    public long Id { get; set; }

    [Required]
    public int DayOfWeek { get; set; }

    [Required]
    [Column(TypeName="time")]
    public DateTime StartTime { get; set; }

    [Required]
    [Column(TypeName = "time")]
    public DateTime EndTime { get; set; }

    public long ShiftId { get; set; }
    public virtual Shift Shift { get; set; }
}

正如您所看到的,我正在尝试将StartTime和EndTime列的数据库类型设置为“time”,但是我收到此错误:

(112,12):错误2019:指定的成员映射无效 . 类型'ShiftDetail'中成员'StartTime'的类型'Edm.DateTime [Nullable = False,DefaultValue =,Precision =]'与'SqlServer.time [Nullable = False,DefaultValue =,Precision = 7]'不兼容'CodeFirstDatabaseSchema.ShiftDetail'类型中的成员'StartTime' .

我也试过TypeName =“time(7)”但我得到了另一个错误:

(104,6):错误0040:类型时间(7)未使用命名空间或别名限定 . 只有原始类型可以无限制地使用 .

如何创建包含代码的时间列? (最好没有流畅的API)

提前致谢 .

1 回答

  • 29

    如果要在数据库中使用 Time 类型,则必须在应用程序中使用 TimeSpan 并且24小时循环 . DateTime 不代表时间 .

相关问题