代码之家  ›  专栏  ›  技术社区  ›  Derviş Kayımbaşıoğlu

实体框架核心第一次加载速度慢

  •  3
  • Derviş Kayımbaşıoğlu  · 技术社区  · 7 年前

    我正在处理实体框架核心DbContext预热时间。我有非常大的DbContext,我正在使用AddDbContextPool()选项注册DbContext,该选项将DbContext注册为单例,应用程序将其重用。

    然而,我没有看到任何有效的方法将这些应用于实体框架核心。我甚至找不到任何其他方法来避免DbContext的初始启动/蠕虫启动时间。

    我们的应用程序的蠕虫启动时间约为30秒以上。

    当我的应用程序第一次启动时,我尝试初始化DbContextes,但是这似乎是一个优雅的或事件可承受的解决方案。

    对于实体框架核心团队(Github)上的编译视图有一个功能请求,但是该功能没有截止日期。

    非常感谢。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Igorgy    7 年前

    第一次启动很慢,因为EF正在配置表映射。您可以做的最重要的事情是重新设计dbcontext。必须将配置拆分为不同的上下文。一个上下文必须包含很少的实体,这些实体在意义上是关联的(就像在DDD中所做的那样)。例如UserDbContext(用于授权。提供用户、令牌、个人数据…),CustomerDbContext(提供所有客户数据:客户、联系人、合同、优惠…)

        2
  •  0
  •   user9200027 user9200027    7 年前

    我在dbContext热身时遇到了困难,因为我们有一个非常大的dbContext,或者我应该说是had。为了解决这个问题,我们现在为应用程序的不同部分提供了多个DBContext。它确实得到了高度推荐。

    然后使用old data annotations[NotMapped]属性关闭DBContext。 DBContext slow when initially building