前提
LINQを使ったデータ更新アプリを作成しています。
DateTime型のNULL更新ができず、困っています。
解決方法についてどなたか心当たりないでしょうか。
- データベース:mysql Ver 8.0.15
- 開発言語:C#
- データの型:MySQL DateTime型(null許容)
SQL
`original_dttm` datetime DEFAULT NULL COMMENT '任意指定可能な日時',
実現したいこと・ソースコード
Modelクラスにて、以下のようにLINQを利用し、null 更新を行いたい。
C#
// 入力された日付を取得 Nullable<DateTime> makeDttm = request.originalDttm(); // 更新内容の設定 testTable.original_dttm = makeDttm; // 値の指定がなければ null // DB反映 db.SaveChanges();
Modelsのテーブル定義は以下になります。
C#
[Required]public Nullable<DateTime> original_dttm{ get; set; }
エラー内容
Visual Studio上のコードにエラーはありません。
LINQを利用し、NULL更新(db.SaveChanges();)を行うと以下のエラーが出力されます。
例外発生:System.Data.Entity.Validation.DbEntityValidationException: 1 つ以上のエンティティで検証が失敗しました。詳細については 'EntityValidationErrors' プロパティを参照してください。
null以外を設定した場合、上記エラーは発生しません。
試したこと
型の記述は以下を確認し、エラーは変わらずでした。
C#
[Required]public Nullable<DateTime> original_dttm{ get; set; }public DateTime? original_dttm{ get; set; }
カラム(original_dttm)にnullが設定されてることは直接SQLを発行し確認済みです。
補足情報
現在は最大値(9999/12/31 23:59:59)を設定し、エラーが発生しないようにしています。
ただ、最大値の入力では他へのアプリへの修正が発生していしまうため、
null更新を調べています。
0 コメント