EF6强制内存模型创建,在数据访问之前首先进行代码编写

时间:2014-08-05 08:15:41

标签: entity-framework

据我所知,代码首先是在第一次数据访问时创建内存模型,导致第一次数据访问延迟(在我的情况下为几秒)。

有没有办法在应用程序启动时强制创建内存模型,以避免在第一次数据访问期间出现延迟?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用EF数据库初始化程序初始化数据库并调用IDatabaseInitializer<TContext>的{​​{1}}方法。

您可以使用任何内置数据库初始化程序来执行此操作。

InitializeDatabase的{​​{1}}方法中使用DropCreateDatabaseIfModelChanges初始值设定项的示例:

Application_Start

Global.asax初始化程序将检查每次应用程序启动时是否有任何模型更改,如果存在,它将根据最新模型删除并重新创建数据库。

您可以使用以下初始化设备之一而不是 protected void Application_Start() { Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DataContext>()); using (var context = new DataContext()) { context.Database.Initialize(false); } }

CreateDatabaseIfNotExists

DropCreateDatabaseAlways

MigrateDatabaseToLatestVersion(如果你正在使用DbMigrations)