質問: new TimeSpanToStringConverter(); entity.Property(e => e.PickupTime).HasConversion(timeStringConverter); ``` そして、私は同じエラーを受け取りました。 ありがとう!
回答: `ValueConverter`のリファレンスドキュメントを`ValueConverter` **ConvertFromProvider** > ストアからデータを*読み取る*ときにオブジェクトを変換する関数を取得します。nullを処理するためのセットアップ、ボクシング、および単純な型の完全一致は取得しません。 > > **ConvertToProviderExpression** : > ストアにデータを*書き込む*ときにオブジェクトを変換する関数を取得します。nullを処理するためのセットアップ、ボクシング、および単純型の完全一致は取得しません。 > > したがって、「from」と「to」は、ストア、データベースの観点です。 過負荷で... > > ``` > .HasConversion(v => v.ToString(), x => TimeSpan.Parse(x)) > > ``` > ...最初の式パラメーターの名前は「convertToProviderExpression」、2番目の式パラメーターは「convertFromProviderExpression」です。変換が書き込むことを意味し`TimeSpan`データベース*に*文字列として、データベース*から*文字列を読み取り、に変換`TimeSpan` 。したがって、データベースフィールドは文字列でなければなりません。 取得される例外は、データベースフィールドが`time`データ型の場合に発生します。コンバーターは文字列を予期しますが、 `TimeSpan`を受け取ります。間違った型を受け取る.Netメソッドの標準エラーは、発生するエラーです。このコンテキストでは、やや紛らわしいエラーです。