ASP.NET MVC 4 Web アプリを作成しています。DbContext.ValidateEntity
追加しようとしているエンティティがいくつかのチェックに合格するかどうかを確認するために使用しています。Name
カスタムプロパティが一意であるかどうか、または他のプロパティがカスタム ロジックを通過するかどうかなどを確認します。
ただし、単体テストで、予期しない動作が検出されました。私はリポジトリ パターンをDbContext
使用しており、データベースから EF モデル エンティティを取得するために使用してリポジトリ関数に渡すグローバルがあります。
前もって、問題は、 の内部でValidateEntity
、追加されるエンティティを確認するときに、既存のすべてのエンティティを照会し、特定のフィールドがいくつかの一意性チェックに合格することを確認することです。しかし、クエリを実行した既存のアイテムでは、既にアイテムが追加されていることがわかります。
たとえば、データベースにエンティティが存在せず、最初のエンティティを作成しているValidateEntity
場合、既存のすべてのエンティティに対してクエリを実行すると、エンティティが表示されます。
データベースに送信する前に、コレクション内のすべてのエンティティが必要だSaveChanges
と思いましたか?ValidateEntity