【问题标题】:Cashed code-first model with Npgsql使用 Npgsql 兑现代码优先模型
【发布时间】:2023-03-30 07:05:01
【问题描述】:

我正在尝试启用缓存实体模型(在阅读 https://mirkomaggioni.com/2018/01/06/performance-improvements-in-entity-framework-6-2/ 之后)以及 Npgsql 提供程序。

数据库配置:

Class NpgsqlConfiguration
  Inherits System.Data.Entity.DbConfiguration
  Public Sub New()
    Dim provider = "Npgsql"
    SetProviderServices(provider, Npgsql.NpgsqlServices.Instance)
    SetProviderFactory(provider, Npgsql.NpgsqlFactory.Instance)
    SetDefaultConnectionFactory(New Npgsql.NpgsqlConnectionFactory())

    SetModelStore(New DefaultDbModelStore(Directory.GetCurrentDirectory()))
  End Sub
End Class

在第一次运行 Edmx 模型时,会生成包含有效内容的模型。 然而,在第二次运行异常时,当我尝试从上下文中访问一些数据库集时

ctx.Set(Of EntityClass).ToList()

System.ArgumentException: '路径不是合法形式。'

我该如何克服呢?感谢您的帮助。

实体框架 6.2.0、Ngpsql 4.0.2、ef.npgsql 3.2.0

【问题讨论】:

    标签: entity-framework entity-framework-6 npgsql


    【解决方案1】:

    我正在使用 Costura.Fody 作为解决方案,当我禁用它时,EF 开始加载生成的模型。

    但是我没有注意到任何显着的性能提升:/

    • 在没有 edmx 模型的情况下调用第一个查询大约需要 2.4 秒
    • 使用 edmx 模型调用第一个查询大约需要 2.2 秒

    我的模型中有46个实体(表),可能是数量太少找不到缓存的效果..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      相关资源
      最近更新 更多