この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 14748|答える: 0

[解決済み] 1つ以上の団体で検証が失敗します。 詳細については、EntityValidationErrors プロパティをご覧ください。

[リンクをコピー]
掲載地 2015/10/08 20:47:51 | | |
この記事の再版であるため、ここに出典が記載されています。もし以前に出典が見つからなくなったり、他の理由で記載なしで転送された記事があった場合はご容赦ください。

もし不快に感じたら、私に連絡するか、削除するか、出典を指定してください。

以前は良い記事を集めたかっただけなのに、時々繋がりが切れてしまうので、良い記事に出会うと直接自分のところに向かうようになりました。

原典 http://blog.csdn.net/snowinfish/article/details/11567301



VS2012で ADO.NET エンティティモデルにデータを書き込む際、「DbEntityValidationException not handled」や「1つ以上のエンティティの検証が失敗しました」と繰り返し表示されます。 詳細については、EntityValidationErrors プロパティをご覧ください。



次の2つのエンティティを自分でテストしましたが、主に「operate911」によるエラーでした。

オンラインで情報を調べ、以下の記事を参照しました。

EntityValidationErrorの詳細表示方法の回避策

http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html

しかし、例外を書く際には「DbEntityValidationException」が存在せず、これは名前空間参照の欠如と推測されます。

こう付け加えた:

[チャープ] 簡易写し表示
System.Data.Validationを使い、  

対応する手順は次のように修正されます:
[チャープ] 簡易写し表示
やってみて  
{ 存在。 Operate911.Add(operationate911);  
    存在。 SaveChanges();  
}  
catch (DbEntityValidationException dbEx)   
{  

}  
Start、例外プロンプトなし、「operate911」はデータベーステーブルにデータを書き込んでいません。
チェックの理由は、補助プログラムを書く際に空であってはいけない列のデータ入力がなく、修正後にプログラムが起動されテストが成功するからです。



ただし、例外を書かない場合は、上位のエラーを引き続きプロンプトしてください。

さらに、「catch (DbEntityValidationException dbEx)」という文の後にパラメータ「dbEx」を書くことも可能です。

引き続き不明のまま...



09.12 追記:

上記のtryとcatchは誤って表記されており、例外は投げられず、以下に変更されます。


[チャープ] 簡易写し表示
やってみて  
{ var operateSpt = new OperateSpt(ymd, timeNow, Operate);  
        存在。 OperateSpts.Add(operateSpt);  
        存在。 SaveChanges();  
}  

catch (DbEntityValidationException ex)  
{  
    MessageBox.Show(例: メッセージ);  
}  

結果は下図に示されています。


引き続き不明のまま...



補足:問題解決。

理由:書き込まれたデータがテーブルの設定と矛盾しているからです。

私の理由は、あるステップで書き込みデータは空ですが、元のテーブルは「空にできない」に設定されているため、このステップを実行する際に例外が発生するからです。

私は不注意で、データに書き込まれた他の操作を見てこの問題に気づきませんでした。





先の:点平と美団は相互利益とウィンウィンのために合併する予定です。
次に:ASP.NET ルートディレクトリを取得するためのメソッドの集合です
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com