【LINQ】DateTime型のnull更新方法【C#】

前提

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 コメント