38

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 のデータベース タイプを「時間」に設定しようとしていますが、次のエラーが発生します。

(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 なしで)

前もって感謝します。

4

1 に答える 1

53

Timeデータベースでタイプを使用する場合TimeSpanは、アプリケーションで 24 時間サイクルを使用する必要があります。DateTime時間の表現ではありません。

于 2012-08-29T20:42:14.037 に答える