代码改变世界

EF 预热

2015-09-18 12:05  xchit  阅读(825)  评论(0编辑  收藏  举报

由于EF第一次加载比较慢,所以要对EF进行一次初始化的加载,类似第一次打开网页很慢,但第二次打开都很快了的原理一样;第一次把所有静态的图片和JS缓存到本地了;当第二次打开的时候都不需要再去下载这些东西;

因为EF第一次需要生成实体类和数据库的对应关系并做缓存;所以第一次加载的时候很慢;

博客园里面有很多博客都有讲解:

http://www.cnblogs.com/dudu/p/entity-framework-warm-up.html

http://www.kuqin.com/shuoit/20140920/342225.html

http://www.codes51.com/article/detail_124837.html

主要代码如下:

using (var dbcontext = new CnblogsDbContext())
{
    var objectContext = ((IObjectContextAdapter)dbcontext).ObjectContext;
    var mappingCollection = (StorageMappingItemCollection)objectContext.MetadataWorkspace.GetItemCollection(DataSpace.CSSpace);
    mappingCollection.GenerateViews(new List<EdmSchemaError>());
}

其实没什么高深的东西;以前也注意看到过,但都没有深入研究;