-1

ASP.NET MVC アプリケーション用の Entity Framework データ モデルの作成のチュートリアルを進めています。私は他の人がしたのと同じエラーに遭遇しました:

「ProjectBuild のメタデータを取得できません」。「同じ DbCompiledModel を使用して、異なる種類のデータベース サーバーに対してコンテキストを作成することはサポートされていません。代わりに、使用されているサーバーの種類ごとに個別の DbCompiledModel を作成してください。」

私はこの解決策に出くわしました

「DbContext クラスには、ターゲット CE データベースを定義するデフォルトのコンストラクターがありませんでした。」

そこで、次のコード行でデフォルトのコンストラクターを追加しました。

 public SchoolContext()
        : base("SchoolContext"){}

私の質問は、ここで正確に何をしているのかということです。コンストラクターの後にコロンを付けると、何をしますか? DBContext をインスタンス化するときに文字列を受け取るコンストラクターを使用することを SchoolContext に伝えているのではないでしょうか。あれは正しいですか ?

ありがとう

4

1 に答える 1

0

DbContext ctorは、接続文字列または接続文字列名を想定しています。DbContextから派生したクラスに接続文字列の名前をハードコーディングすることにより、アプリケーションの実行場所や実行方法に関係なく、アプリケーションが構成ファイルに移動し、コンストラクターでハードコーディングした名前の接続文字列を読み取るようにします。これは、アプリケーションを構成できることを意味し(接続文字列自体ではなくその名前を指定したため)、同時に、アプリの構成方法が明確に定義されており、変更を加えても「魔法のように」変更されることはありません。あなたのアプリに。

于 2013-01-28T03:03:26.120 に答える