zoukankan      html  css  js  c++  java
  • EntityFramework进阶(二)- DbContext预热

    本系列原创博客代码已在EntityFramework6.0.0测试通过,转载请标明出处

    在DbContext首次调用的时候,会很慢,甚至会有5,6秒的等待,通常称为冷查询。再次调用的时候,几毫秒就能请求完。原因是首次调用的时候,DbContext会验证模型,缓存视图信息等操作。我们可以提前预生成视图来缓解延迟。

    /// <summary>
    /// dbcontext预热
    /// 
    /// </summary>
    private void PreLoad<TDbContext>() where TDbContext:DbContext,new()
    {
        using (var dbcontext = new TDbContext())
        {
            var objectContext = dbcontext.GetObjectContext();
            var mappingCollection = (StorageMappingItemCollection)objectContext.MetadataWorkspace.GetItemCollection(DataSpace.CSSpace); 
            mappingCollection.GenerateViews(new List<EdmSchemaError>());
        }  //对程序中定义的所有DbContext逐一进行这个操作
    }

    dbcontext.GetObjectContext()方法的实现参考上篇博客 EntityFramework进阶(一)- DbContext与ObjectContext互转

  • 相关阅读:
    java面试
    java多态
    java多线程
    Java操作ElasticSearch
    liunx安装jdk
    linux安装Elasticsearch详细步骤
    java IO流
    java递归
    File文件类
    redis单机多节点集群
  • 原文地址:https://www.cnblogs.com/RexSheng/p/10928382.html
Copyright © 2011-2022 走看看