1. ホーム
  2. .net

[解決済み] DbValidationExceptionから正確なエラータイプを取得する

2022-04-22 11:09:31

質問

EF 4.1のDatabaseInitializer()でモデルを初期化するときに、次のようなエラーが発生します。 "Validation failed for one or more entities. See 'EntityValidationErrors' property for more details." そこで、このEntityValidationErrorsにアクセスすると、フィールドがあります。 {System.Data.Entity.Validation.DbEntityValidationResult} というメッセージが表示され、どのフィールドを初期化できなかったかについての情報が全く得られません。 このエラーに関する詳細な情報を得る方法はありますか?

物事をクリアにするために

文字列の長さの問題を解決する方法はわかっています。私が尋ねているのは、モデルを壊している正確なフィールド名をどのように取得するかということです。

解決方法を教えてください。

の中でデバッグモードになっているときに catch {...} ブロックを開き、quot;QuickWatch"ウィンドウを開きます( ctrl + アルト + q )に貼り付けてください。

((System.Data.Entity.Validation.DbEntityValidationException)ex).EntityValidationErrors

これにより、ドリルダウンして ValidationErrors ツリーを作成します。これは、私が見つけた中で最も簡単な方法で、これらのエラーを即座に把握することができます。

Visual 2012+のユーザーで、最初のエラーにしか関心がなく、また catch ブロックにすることもできます。

((System.Data.Entity.Validation.DbEntityValidationException)$exception).EntityValidationErrors.First().ValidationErrors.First().ErrorMessage