gpt4 book ai didi

c# - 可以从 DbContext 访问 DbConfiguration 吗?

转载 作者:行者123 更新时间:2023-11-30 18:17:08 24 4
gpt4 key购买 nike

拥有自己的 EF DbContext与我自己关联的派生类 DbConfiguration派生配置类:

[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyDbContext : DbContext
{
}

我正在尝试从 MyDbContext 中访问 MyDbConfiguration 的实例。

(假设实际上任何实例)。

例如:

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;
}
}

编译错误为:

Cannot convert type 'System.Data.Entity.Infrastructure.DbContextConfiguration' to 'MyDbConfiguration'.

显然,这两种类型之间没有直接关系。

很可能我完全误解了这个 Entity Framework 配置的东西,这个问题是一个 XY problem .我仍然很想问问它:

我的问题:

有什么方法可以从 DbContext 中访问 DbConfiguration 吗?

如果不是,是否可以反过来? IE。从 DbConfiguration 中访问 DbContext?

(这个问题与EFCache issue #14有关)

最佳答案

无法找到直接答案,a workaround suggested by the EFCache author在我的情况下帮助了我:

Just store a reference to the cache in a static variable before you pass it to the CacheTransactionHandler c'tor and then you should be able to it access from anywhere. The cache is effectively singleton so I don't think there is any problem with doing this.

这不是我希望的最佳解决方案,但仍然可以完美运行。

关于c# - 可以从 DbContext 访问 DbConfiguration 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44833064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com