我正在尝试从模型生成数据库。我相信我已经设置了在其他问题/演练中可以找到的所有内容,但似乎没有生成我的数据库。
语境:
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
}
}
全球.asax:
Database.SetInitializer(new DatabaseInitializer());
网络配置:
<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 都不包含任何相关表。
另一件需要注意的事情:我已经使用 nuget 将 EntityFramework 添加到我的项目中,但是当我右键单击任何文件/文件夹时,我在上下文菜单中看不到 EntityFramework。这可能是问题吗?我已将 EF 删除并添加到项目中,但它仍然没有出现。不过,我的 References 文件夹中有一个“EntityFramework”条目。