Entity Frameworkが、接続先のデータベースを上書きしたり、作成しようとすることはありません。これは以前ASPウェブサイト(視覚的な基本的なスクリプトの味)によってアクセスされた確立されたデータベースです。私はEntity Frameworkの初期化のベストプラクティス
//example 1
public class SchoolDBContext: DbContext
{
public SchoolDBContext() : base("name=SchoolDBConnectionString")
{
}
}
あなたがそうのような基本コンストラクタに「名前を=」合格大会を...見てきましたが、私はので、おそらく、それはハードコードされた(上記のように)持っていないように好むだろう...
//example 2
public SchoolDBContext(string ConnectionString) : base("name=" + ConnectionString) {
}
しかし、私はまた、文字列が空で出た場合、バグにできるようにしたいのですが...
//example 3
public SchoolDBContext(string ConnectionString) : {
if (string.IsNullOrWhitespace(ConnectionString) throw Exception("empty connection string");
base("name=" + ConnectionString);
}
質問1:コードの第3ビットが同じでない場合、私はわかりませんよ2番目の仕事は、それですか? 3番目の例では、 "name ="のベースを呼び出す前にパラメータのない構造体を最初に呼び出すことがあります。
質問2:EntityFrameworkをより堅牢に構成するために使用できるオプションがコンストラクタで利用できますか?
あなたはEFはあなたがcreateinitializerクラスを追加する必要があるたびに上書きOCH新しいデータベースを作成したくない場合は、私はEF 6
http://www.entityframeworktutorial.net/code-first/database-initialization-strategy-in-code- first.aspx ... CreateDatabaseIfNotExists:これはデフォルトの初期化子です。名前が示すように、構成ごとにデータベースが存在しない場合、データベースを作成します。ただし、モデルクラスを変更してこの初期化子を使用してアプリケーションを実行すると、例外がスローされます。 – Nnoel
"CreateIntializer"をグーグルで検索して私の答えを見つけたので、これを正しくマークしています。ありがとう。 – Nnoel