//默認為:
Database.SetInitializer<testContext>(null);//這里報錯,
檢查原因:catch(Exception ex) 錯誤提示: 基礎連接未打開open 數據庫
還有另外的原因,網上查到分享給大家
策略一:數據庫不存在時重新創建數據庫
復制內容到剪貼板 程序代碼
Database.SetInitializer<testContext>(new CreateDatabaseIfNotExists<testContext>());
策略二:每次啟動應用程序時創建數據庫
復制內容到剪貼板 程序代碼
Database.SetInitializer<testContext>(new DropCreateDatabaseAlways<testContext>());
策略三:模型更改時重新創建數據庫
復制內容到剪貼板 程序代碼
Database.SetInitializer<testContext>(new DropCreateDatabaseIfModelChanges<testContext>());
策略四:從不創建數據庫
復制內容到剪貼板 程序代碼
Database.SetInitializer<testContext>(null);
Entity Framework數據庫初始化示例
復制內容到剪貼板 程序代碼
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using Web.Models.Mapping;
namespace Web.Models
{
public class testContext : DbContext
{
static testContext()
{
Database.SetInitializer<testContext>(null);
}
public testContext()
: base("Name=testContext")
{
}
public DbSet<Person> People { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new PersonMap());
}
}
}
using System.Data.Entity.Infrastructure;
using Web.Models.Mapping;
namespace Web.Models
{
public class testContext : DbContext
{
static testContext()
{
Database.SetInitializer<testContext>(null);
}
public testContext()
: base("Name=testContext")
{
}
public DbSet<Person> People { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configurations.Add(new PersonMap());
}
}
}