我想使用可以使用内置于SQL DEPENDENCY中的sql服务器的实体框架核心(或其他任何ORM),以便每个从表中插入,更新,删除,触发sql依赖项事件并刷新缓存该特定表的实体框架内部。
换句话说,我有一个800 mb的数据库,有50个表,它们只有一对多,多对一和一对一的关系。我想把所有这些表放到表中作为内存。
实体框架上下文应该是一次性的,不能永远存在。
答案 0 :(得分:0)
您可以使用任何ORM从数据库检索数据。从数据库中检索数据后,您可以在将项目插入缓存之前对其设置SQL依赖项。
NCache提供了自己的SQL依赖关系实现,与用于检索数据库内容(EF,NHibernate,ADO.NET等)的框架无关。在此功能中,NCache向数据库服务器注册SQL命令(SELECT查询和SELECT存储过程)。如果有任何UPDATE或DELETE事件修改了可以使用这些注册的SQL命令检索的结果集,则SQL Server将向NCache发送通知,以作为响应将删除相应的缓存数据。
因此,在db上下文的using块内,您可以将从数据库检索到的内容添加到具有NCache SQL依赖关系的缓存中。
要响应于UPDATE事件而不是完全删除受影响的缓存数据而允许对缓存数据进行100%更新,这涉及集成自动重载功能,该功能以备用源提供程序的形式利用NCache的直通功能。在这种情况下,您可以在缓存项上设置一个重新同步标志,以指定在要通过SQL依赖项删除该项的情况下,NCache应该检索新数据。为此,直通提供程序将继续从中检索新数据。数据库并替换过时的缓存数据。 直写式提供程序与直写式提供程序一起构成了NCache支持源提供程序,使NCache可以代表客户端执行对数据库的读写命令。
有关SQL依赖关系的更多信息,请参见以下链接:
有关NCache备份源提供程序的信息可以在以下链接中找到:
http://www.alachisoft.com/resources/docs/ncache/prog-guide/sql-dependency.html