entity-framework - 使用 Npgsql 兑现代码优先模型
问题描述
我正在尝试打开缓存实体模型的使用(在阅读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
解决方案
我正在使用 Costura.Fody 作为解决方案,当我禁用它时,EF 开始加载生成的模型。
但是我没有注意到任何显着的性能提升:/
- 调用没有 edmx 模型的第一个查询大约需要 2.4 秒
- 使用 edmx 模型调用第一个查询大约需要 2.2 秒
我在模型中有46个实体(表),可能是太少了,找不到缓存的效果。。
推荐阅读
- r - 从 R 上的栅格中获取准确的 Y 值
- ios - XLPagerTabStrip:动态添加子视图到选项卡的视图控制器不会显示,除非在第一个选项卡下
- python - 根据来自另一列的信息用 pandas 填充一个空列
- excel - Excel:如何“收集”值以显示在另一个单元格中
- precision - 推荐系统中的准确率和召回率
- java - Java regex pattern.compile() 无法解析符号
- javascript - Angular 依赖的 $http 请求
- go - 从读取 .go 文件中反思结构类型
- java - java.nio.ScoketChannel 忽略 Content-Length 并使用 Transfer-Encoding: chunked based on User-Agent
- python-3.x - 将字节文件从 AWS S3 读取到 AWS SageMaker conda_python3