Dot-Net

Entity Framework Code First 中的 SQL“時間”類型

  • August 29, 2012

我正在嘗試使用 Entity Framework Code First 在表中創建一個“時間(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 列的數據庫類型設置為“時間”,但出現此錯誤:

(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:類型 time(7) 沒有使用命名空間或別名進行限定。只有原始類型可以在沒有限定的情況下使用。

如何首先使用程式碼創建時間列?(最好沒有流暢的 API)

提前致謝。

如果要Time在數據庫中使用類型,則必須TimeSpan在應用程序中使用 24 小時周期。DateTime不是時間的表示。

引用自:https://stackoverflow.com/questions/12186044