2011-09-17 7 views

答えて

2

データベースから読み取られたデータは、検証規則によってマッピングが正しく定義されているため、検証ルールによって正しいと予想されます。不整合により、オブジェクトのマテリアライゼーションで例外が発生する場合があります。

using System.ComponentModel.DataAnnotations; 

var results = new List<ValidationResult>(); 
var context = new ValidationContext(myModelObject, null, null); 
bool isValid = Validator.TryValidateObject(myModelObject, context, results, true); 
+0

は、あなたがこのバリデータについてもう少し詳しく説明してくださいすることができ、そしてそれがどのように動作するか:あなたは、データの注釈に基づいて実行、検証したい場合は

手動では使用できますか? 上記の例のようにテストしたところ、うまく動作しないようです: var u = new Ucenik(); db.Ucenici.Add(u); var valrez = db.GetValidationErrors(); var results =新しいリスト(); varコンテキスト=新しいValidationContext(u、null、null); bool isValid = Validator.TryValidateObject(u、context、results、true); – Zaak

+0

Ucenikクラスはその属性にIsRequiredを持っているので、dbContextとGetValidationErrorsにそれを追加すると正常に動作しますが、属性が見つからないと3つのエラーが発生します。 しかし、Validatorはエラーを返しません。それは間違って設定されていますか? 私のUcenikクラスは、まずコードから来ますが、既存のデータベースを使用しているため、*パブリッククラスUcenikConfiguration:EntityTypeConfiguration *にバリデーションルールを追加しました。違いがありますか? – Zaak

+0

Validatorクラスは、データ注釈を使用する場合にのみ機能します。流暢なマッピングでは機能しません。 –

関連する問題