ホームページ > バックエンド開発 > C++ > 「データベースの初期化中に「検証が失敗した」エンティティフレームワークのエラーのデバッグ方法は?

「データベースの初期化中に「検証が失敗した」エンティティフレームワークのエラーのデバッグ方法は?

Barbara Streisand
リリース: 2025-01-28 23:31:09
オリジナル
332 人が閲覧しました

How to Debug

検証障害中のデータベース初期化このエラーは、通常、データベース播種プロセス中にデータが挿入されたときに発生し、入力データは検証ルールの定義を満たしていません。この例では、播種プロセス中に8つの検証エラーが発生しました。 エラーメッセージにより、「エンティティ検証エラー」プロパティを確認して詳細を取得するように求められます。これらのエラーにアクセスするには、以下の手順に従うことができます。

Context.saveChanges()シードメソッドのSaveChanges()は、周囲のメソッドの周りのトライキャッチブロックを呼び出します。

キャッチブロックでは、dbentity validationExceptionがキャプチャされます。

    entityValidationError属性を異常なオブジェクトから検索します。
  1. エンティティ検証エラーセットを取得した後、それを通過して、各検証障害エンティティの特定のエラーメッセージを確認できます。
  2. アクセス検証エラー

キャッチブロックの実際の検証エラーを表示するには、次のコードを使用できます。

このコードは、物理タイプ、属性名、エラーメッセージなど、各検証エラーの詳細情報を出力します。 エラーの例を確認します

エラーの考えられる理由の1つは、アプリケーションテーブルの不足または無効な状態値です。データベースの変更を保存しようとする前に、statusIDプロパティが効果的な状態IDに設定されていることを確認してください。
<code class="language-c#">try
{
    //您的代码...

    context.SaveChanges();
}
catch (DbEntityValidationException e)
{
    foreach (var eve in e.EntityValidationErrors)
    {
        Console.WriteLine("类型为 \"{0}\" 的实体,状态为 \"{1}\",具有以下验证错误:",
            eve.Entry.Entity.GetType().Name, eve.Entry.State);

        foreach (var ve in eve.ValidationErrors)
        {
            Console.WriteLine("- 属性:\"{0}\",错误:\"{1}\"",
                ve.PropertyName, ve.ErrorMessage);
        }
    }

    throw;
}</code>
ログイン後にコピー

以上が「データベースの初期化中に「検証が失敗した」エンティティフレームワークのエラーのデバッグ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート