Ответ 1
Если вы хотите использовать тип Time
в базе данных, вам нужно будет использовать TimeSpan
с 24-часовым циклом в вашем приложении. DateTime
не является представлением времени.
Я пытаюсь создать столбец "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)
Спасибо заранее.
Если вы хотите использовать тип Time
в базе данных, вам нужно будет использовать TimeSpan
с 24-часовым циклом в вашем приложении. DateTime
не является представлением времени.