首页 新闻 搜索 专区 学院

一到离奇怪异的难题

0
悬赏园豆:200 [已关闭问题] 关闭于 2017-03-29 17:52

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的方式最终

会报错

【秦时明月】的主页 【秦时明月】 | 小虾三级 | 园豆:835
提问于:2017-03-29 14:28
< >
分享
所有回答(1)
0

你服务注册的顺序不正确吧,你的错误里面说:
“RedisCacheConfiguration” 的实例必须在使用任何实体框架功能前启动或者调用,注册。
你查看一下服务调用的顺序,以及注册的顺序。

BUTTERAPPLE | 园豆:2950 (老鸟四级) | 2017-03-29 17:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册