据我所知,代码首先是在第一次数据访问时创建内存模型,导致第一次数据访问延迟(在我的情况下为几秒)。
有没有办法在应用程序启动时强制创建内存模型,以避免在第一次数据访问期间出现延迟?
感谢。
答案 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)