モデルからデータベースを生成しようとしています。他の質問/チュートリアルで見つけることができるすべてをセットアップしたと思いますが、データベースが生成されていないようです.
環境:
public class DatabaseContext : DbContext {
public DatabaseContext()
: base("Name=DatabaseContext") {
}
public DbSet<Show> Shows { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Configurations.Add(new ShowMap());
}
}
マッピング:
public class ShowMap : EntityTypeConfiguration<Show> {
public ShowMap() {
ToTable("Shows");
// Key
// Properties
}
}
初期化子:
public class DatabaseInitializer : DropCreateDatabaseAlways<DatabaseContext> {
private List<Show> _shows = new List<Show>();
protected override void Seed(DatabaseContext context) {
LoadShows();
_shows.ForEach(s => context.Shows.Add(s));
}
private void LoadShows() {
// Creating models
}
}
Global.asax:
Database.SetInitializer(new DatabaseInitializer());
Web.config:
<add name="DatabaseContext" connectionString="Data Source=JEROEN-DESKTOP\SQLEXPRESS;Initial Catalog=NoName;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
テーブルを追加せずにスキーマ「NoName」を手動で作成しました。プログラムの実行は問題なく行われますが、テーブルが生成されません。VS SQL サーバー オブジェクト エクスプローラーで接続を確認すると、localdb と SQLEXPRESS の両方に関連するテーブルが含まれていないことがわかります。
注意すべきもう 1 つの点: nuget を使用してプロジェクトに EntityFramework を追加しましたが、任意のファイル/フォルダーを右クリックしても、コンテキスト メニューに EntityFramework が表示されません。これが問題でしょうか?プロジェクトから EF を削除して追加しましたが、まだ表示されません。ただし、参照フォルダーには「EntityFramework」エントリがあります。