https://github.com/moozzyk/EFCache 使用了这个衍生版 Redis的,
但必须得使用自定义DbConfiguration.
public class Configuration : DbConfiguration { public Configuration() { var transactionHandler = new CacheTransactionHandler(new InMemoryCache()); AddInterceptor(transactionHandler); var cachingPolicy = new CachingPolicy(); Loaded += (sender, args) => args.ReplaceService<DbProviderServices>( (s, _) => new CachingProviderServices(s, transactionHandler, cachingPolicy)); } }
但底层是通过IOC生成的Context
builder.RegisterType<PermissionEntities>().WithParameter(
(p, c) => string.Equals(p.Name, "existingConnection"), (p, c) =>
{
return GetDbConnection();
}).
InstancePerRequest();
因此无法按照传统方式new PermissionEntities("")进行使用,
按照IOC的方式最终
会报错
你服务注册的顺序不正确吧,你的错误里面说:
“RedisCacheConfiguration” 的实例必须在使用任何实体框架功能前启动或者调用,注册。
你查看一下服务调用的顺序,以及注册的顺序。