0

MVC 3 アプリケーションで EF 4.1 を使用しています。

私の目標は、ログ記録のためにすべての変更を別のデータベースに保存することです。

SavingChangesのイベントを実装しましたEntityContext。その場合、正常に動作する を介して変更を抽出しGetObjectStateEntries()ています。

次に、EntityContextロギング用に、別のモデルとデータベースに対して機能する別の があります。そのコンテキストを作成し、ロギング エンティティを作成して、それらをロギング コンテキストに追加します。すべてうまくいくようです。次に、ロギング コンテキストを呼び出すとSaveChanges()、Id が null であるため挿入できないという例外が発生します (そうではないことは確かです)。

これを達成することが不可能かどうか誰にも分かりますか? 重要な詳細が欠けていますか?

4

1 に答える 1

0

ロギング モデルでは「モデル ファースト」を使用し、他のすべてのモデルでは「DB ファースト」を使用した場合がそうでした。その結果、EF 構成が Id (GUID) 自体を処理することを期待していましたが、自分で提供しようとしていたという間違いが発生しました。モデルからエンティティを削除し、代わりに DB からインポートしたところ、問題は解決しました!

私を正しい方向に向けてくれた@Erangaに感謝します。

于 2012-09-13T07:44:51.883 に答える