我正在尝试使用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 回答
如果要在数据库中使用
Time
类型,则必须在应用程序中使用TimeSpan
并且24小时循环 .DateTime
不代表时间 .