Entity framework 使用EF core ncache提供程序,自动缓存和同步数据库中的所有表

Entity framework 使用EF core ncache提供程序,自动缓存和同步数据库中的所有表,entity-framework,ncache,Entity Framework,Ncache,我想使用entity framework core或任何其他可以使用sql server内置sql依赖项的ORM,以便每次插入、更新、删除表时,触发一个sql依赖项事件并刷新该特定表的entity framework内的缓存 换句话说,简单地说,我有一个800MB的数据库,有50个表,它们只有一对多、多对一和一对一的关系。我想把所有这些表作为表放到内存中 实体框架上下文应该是一次性的,不能永远存在。您可以使用任何ORM从数据库检索数据。从数据库中检索数据后,可以在将项目插入缓存之前对其设置SQL

我想使用entity framework core或任何其他可以使用sql server内置sql依赖项的ORM,以便每次插入、更新、删除表时,触发一个sql依赖项事件并刷新该特定表的entity framework内的缓存

换句话说,简单地说,我有一个800MB的数据库,有50个表,它们只有一对多、多对一和一对一的关系。我想把所有这些表作为表放到内存中


实体框架上下文应该是一次性的,不能永远存在。

您可以使用任何ORM从数据库检索数据。从数据库中检索数据后,可以在将项目插入缓存之前对其设置SQL依赖关系

NCache提供了自己的SQL依赖性实现,独立于用于检索数据库内容EF、NHibernate、ADO.NET等的框架。。在该功能中,NCache向数据库服务器注册SQL命令选择查询和选择存储过程。如果任何更新或删除事件修改了可以使用这些已注册的SQL命令检索的结果集,则SQL server将向NCache发送通知,以删除相应的缓存数据

因此,在db上下文的using块中,可以将从数据库检索到的内容添加到缓存中,并在缓存中设置NCache SQL依赖项

为了允许100%更新缓存数据以响应更新事件,而不是完全删除受影响的缓存数据,这涉及到集成自动重新加载功能,该功能以备份源提供程序的形式利用NCache的读取功能。在这种情况下,可以在缓存项上设置重新同步标志,以指定NCache应检索新数据。如果SQL依赖项要删除该项,则读通提供程序将继续从数据库检索新数据,并替换过时的缓存数据。 读通提供程序与写通提供程序共同构成NCache支持源提供程序,使NCache能够代表客户端执行对数据库的读写命令

有关SQL依赖关系的更多信息,请访问以下链接:

有关NCache支持源提供程序的信息可在以下链接中找到:


没有响应SQL依赖事件的ORM。你必须自己编写代码。