3

Entity Framework が現在のバージョンであると考えていたモデルと同期していないという問題があったため、すべての移行を消去し、この投稿に従って最初からやり直しました。

リセット後。Entity Framework を有効にしようとしたところ、このエラーが発生しました。

アセンブリ 'Proj' で複数のコンテキスト タイプが見つかりました。Proj.Models.UsersContext の移行を有効にするには、Enable-Migrations -ContextTypeName Proj.Models.UsersContext を使用します。Proj.Models.InjuriesContext の移行を有効にするには、Enable-Migrations -ContextTypeName PamperWeb.Models.InjuriesContext を使用します。...すべてのコンテキストで

最初のコンテキストであるユーザーを有効にできましたが、別のコンテキストを有効にしようとすると、次のエラーが表示されます

プロジェクト 'Proj' では移行が既に有効になっています。既存の移行構成を上書きするには、-Force パラメーターを使用します。

どうやら私は、MVC と Entity Framework がどのように機能するかについて、かなりずれているようです。各モデル クラスにコンテキストを設定しました。1 つのコンテキストと、そのコンテキスト内のすべての DBset を使用する必要がありますか? もしそうなら、この1つのコンテキストがどのモデルクラスファイルと一緒に行くかは重要ですか? 現在のコンテキストはすべて同じデータベースを指しています。

4

1 に答える 1

4

通常のアプリケーションでは、すべてのモデルクラスにdbセットを含む単一のコンテキストが必要です。コンテキストクラスは独自のファイルにある必要があります。コンテキストはモデル全体を形成し、データベースへのアクセスを提供します。すぐに使用できる多くの機能を提供しますが、この機能は、コンテキストに登録されているモデルクラスに対してのみ提供されます。モデルクラスを個別のコンテキストに分割すると、異なるコンテキストからロードされたエンティティを操作するときに、すぐに使用できる機能の一部が失われます。

于 2013-01-10T08:29:33.627 に答える