SQL-тип времени в Entity Framework Code First

Я пытаюсь создать столбец "time (7)" в таблице с Entity Framework Code First. Это мое сущность:

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: Указание членства недействительно. Тип "Edm.DateTime [Nullable = False, DefaultValue =, Precision =]" члена "StartTime" в типе "ShiftDetail" несовместим с "SqlServer.time [Nullable = False, DefaultValue =, Precision = 7]" of член "StartTime" в типе "CodeFirstDatabaseSchema.ShiftDetail".

Я пробовал также с TypeName = "time (7)", но я получаю эту другую ошибку:

(104,6): ошибка 0040: Время типа (7) не соответствует пространству имен или псевдониму. Только примитивные типы могут использоваться без квалификации.

Как создать первый столбец с кодом? (предпочтительно без свободного API)

Спасибо заранее.

Ответы

Ответ 1

Если вы хотите использовать тип Time в базе данных, вам нужно будет использовать TimeSpan с 24-часовым циклом в вашем приложении. DateTime не является представлением времени.