DbValidationException から正確なエラー タイプを取得する 質問する

DbValidationException から正確なエラー タイプを取得する 質問する

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

明確にするために:

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

ベストアンサー1

ブロック内でデバッグ モードになっているときに、catch {...}「クイックウォッチ」ウィンドウ ( ctrl+ alt+ q) を開き、そこに貼り付けます。

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

これにより、ツリーをドリルダウンできますValidationErrors。これは、これらのエラーを即座に把握するための最も簡単な方法です。

最初のエラーのみを気にし、ブロックがない可能性がある Visual 2012 以降のユーザーの場合はcatch、次の操作を行うこともできます。

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

おすすめ記事