我正在尝试与Npgsql提供程序一起使用缓存实体模型(在阅读https://mirkomaggioni.com/2018/01/06/performance-improvements-in-entity-framework-6-2/之后)。
dbconfiguration:
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
答案 0 :(得分:1)
我正在使用Costura.Fody作为解决方案,当我禁用它时,EF开始加载生成的模型。
不过,我没有发现任何明显的性能提升:/
我在模型中有46个实体(表),可能是因为数量太少而无法找到缓存的效果。