让我自己的EF DbContext
派生类与我自己的DbConfiguration
派生配置类相关联:
[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyDbContext : DbContext
{
}
我试图从MyDbConfiguration
内访问MyDbContext
的实例。
(假设实际上 任何实例)。
E.g:
public class MyDbConfiguration : DbConfiguration
{
public int SomeProperty { get; set; }
}
和
[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyDbContext : DbContext
{
public int SomeMethod()
{
// This lines fails to compile:
var config = (MyDbConfiguration)Configuration;
config.SomeProperty = 42;
}
}
编译错误是:
无法转换类型' System.Data.Entity.Infrastructure.DbContextConfiguration'到' MyDbConfiguration'。
显然,这两种类型之间没有直接关系。
我很可能完全误解了这个实体框架配置,这个问题是XY problem。我还是想问一下:
我的问题:
有没有办法从DbConfiguration
内访问DbContext
?
如果没有,是否可能反过来?即从DbContext
?
DbConfiguration
(此问题与EFCache issue #14)
有关答案 0 :(得分:0)
由于无法找到直接答案,a workaround suggested by the EFCache author在我的情况下帮助了我:
只需在静态变量中存储对缓存的引用,然后再将其传递给
CacheTransactionHandler
c,然后您就可以从任何地方访问它。缓存实际上是单身,所以我不认为这样做有任何问题。
不是我希望的最好的解决方案,并且stil完美运行。