1

デタッチされたエンティティから行を更新するとき、これを使用して、変更されていないフィールドを更新しないようにしています。

DbEntityEntry<Type> entry = context.Entry(entity);
entry.Property(p => p.Property).IsModified = false;

これはnull許容フィールドに対しては正常に機能しますが、null許容フィールドでない場合、EFはフィールドが必須であることを示す検証例外をスローします。

なぜこれが機能しないのか、それを克服するために元の値をいじる必要があるのか​​どうかについて、誰かが洞察を持っていますか?
EF5.0とDBContext-APIを使用しています。

4

1 に答える 1

2

その理由は、EF内の検証ロジックです。検証は常にエンティティ全体でトリガーされます-変更は尊重されません。解決策は、EFでエンティティ検証ロジックを無効にすることです。

context.Configuration.ValidateOnSaveEnabled = false;
于 2012-09-07T10:08:11.443 に答える