web-dev-qa-db-ja.com

EF 4.1コードファースト:「タイプ 'DateTime'のnull以外の値」問題

最初の開発とテストの後、MVC3アプリケーションをライブデータを含む既存のデータベースに向けました。

ただし、「datetime」タイプのDate1というフィールドに関連してこのエラーが発生します。

The 'Date1' property on 'StaffAttachment' could not be set to a 'null' value. You must set this property to a non-null value of type 'DateTime'. 

これは、日付のすべての行に日付が必要であり、nullであってはならないことを示していますか?特定の行に日付を設定したくない場合はどうすればよいですか?

誰かがこの問題を解決するためのアドバイスを提供できますか?

ありがとうポール

編集1(投稿モデル)

public class StaffAttachment
{
    [Key]
    public int AttachmentID { get; set; }

    public int? StaffID { get; set; }

    public int? TypeID { get; set; }

    [Required]
    [DisplayName("Proof of ID")]
    public int? AttachmentTypeID { get; set; }

    [Required]
    [DisplayName("ID Reference")]
    public string Reference1 { get; set; }

    public string Reference2 { get; set; }

    public string DateType { get; set; }

    [DisplayName("Expiry Date")]
    public DateTime Date1 { get; set; }

    [Required]
    public DateTime Date2 { get; set; }

    public DateTime Date3 { get; set; }

    public DateTime Date4 { get; set; }

    public string AttachmentPath { get; set; }

    public int? ValidatedUserID { get; set; }

    public DateTime ValidatedDate { get; set; }

    public int? CreatedUserID { get; set; }

    public DateTime CreatedDate { get; set; }

    public int? EditedUserID { get; set; }

    public DateTime EditedDate { get; set; }

    public TimeSpan TimeStamp { get; set; }

    public string FileName { get; set; }

    public byte[] FileImage { get; set; }

    public int AttachmentSection { get; set; }
}
13
Paul Brown

これは、日付のすべての行に日付が必要であり、nullであってはならないことを示していますか?特定の行に日付を設定したくない場合はどうすればよいですか?

ポイントしたDBのDate1の値がnullのようです。実際にすべての行に日付を設定したくない場合は、Date1プロパティをnull許容にします。

public DateTime? Date1{get;set;}

または、現在SQLを介して日時が設定されていないすべての行にデフォルトの日付を入力することもできます。

25
BrokenGlass
public DateTime? Date1 { get; set; }

これを使用すると、データベース内にnull値が存在する可能性があることをモデルに通知する必要があります。そうでない場合、存在しないと見なされます。

8
Lewis

これを使って :

public Nullable<DateTime> LoginDate { get; set; }
3
Persian.