MVCでEntity Framework(最初にデータベースを使用したDbContext)を使用しています。ユーザーがフォームから保存すると、私の内部フラグに応じて、エンティティを挿入メソッドの更新に送信する条件がコントローラーに設定されます。
エンティティを更新メソッドに送信するときに、変更済みのフラグを使用してフラグを立て、context.Entry(myEntity).State = EntityState.Modified;
saveChanges() を呼び出すと、すべてがうまく機能します。
エンティティを挿入メソッドに送信するときは、added using にフラグを立てますcontext.Entry(myEntity).State = EntityState.Added;
が、saveChanges() を呼び出すと、必要な 2 つのフィールドに関するエラーが表示されます...
問題は、これらの2つのフィールドが空ではなく、保存する直前に有効なデータが効果的に含まれていることです...保存する直前に、これらの2つのフィールドに新しい値を強制しようとしましたが、同じエラーです。
Devart DotConnect For PostgreSQL を db プロバイダーとして使用していることを言及しておくと便利です。
この問題をデバッグする方法はありますか?
編集:
エラーは次のとおりです。
1 つ以上のエンティティの検証に失敗しました。詳細については、「EntityValidationErrors」プロパティを参照してください。
この EntityValidationErrors を探すと、次の 2 つの特定のエラーが表示されます。
flg_actif フィールドは必須です
user_creation フィールドは必須です
前述したように、これらのフィールドは保存する直前にデータが入力されているため、何が起こっているのかわかりません。
私はEF v4.0.30319を使用しています(system.data.entity => v4.0およびEntityFramework => v4.4)
EDIT2: もう少し明確にするために: 挿入しようとしているエンティティは、データベースに既に存在します。フォームには、このデータベース行のデータが表示されます。保存するとき、行を更新するかどうかを決定します (これはうまくいきます) が、データベースの変更履歴を保持するために、編集した行を更新するのではなく、新しいレジスタとして挿入する必要がある場合があります。