C# .NET EF核心的DI值转换

C# .NET EF核心的DI值转换,c#,.net,entity-framework,ef-core-3.0,C#,.net,Entity Framework,Ef Core 3.0,我想使用值转换。 在使用它时,我想添加一些配置值。示例用法如下所示。(不幸的是,这段代码没有运行,但我想这样编写代码) 模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder) { 建模者 .实体() .Property(e=>e.Mount) .哈斯转换( v=>SomeFunction.Encrypt(v,iooptionalconfig), v=>SomeFunction.Decrypt(v,iooptionalconfig)); } 更具体地说,我想将加密/解

我想使用值转换。

在使用它时,我想添加一些配置值。示例用法如下所示。(不幸的是,这段代码没有运行,但我想这样编写代码)

模型创建时受保护的覆盖无效(ModelBuilder ModelBuilder)
{
建模者
.实体()
.Property(e=>e.Mount)
.哈斯转换(
v=>SomeFunction.Encrypt(v,iooptionalconfig),
v=>SomeFunction.Decrypt(v,iooptionalconfig));
}
更具体地说,我想将加密/解密密钥传递给转换器函数。
有没有办法在值转换中使用DI配置值

这需要在远处采取恐怖行动。为什么不创建并传入一个
值转换器
(或者使用
加密
解密
方法的
计数器
),而无需进一步配置?然后可以将该类型的创建和注入提升一个级别。不应要求模型生成器知道值转换需要配置。
config
来自何处?我想从Azure、KeyVault传递加密密钥。到目前为止,在我的应用程序中,我使用Azure函数,并使用依赖注入设置IConfiguration的实例(请参见以下链接)。理想情况下,当我创建配置实例时,我希望在配置实例中包含加密密钥,并将密钥传递给我的加密/解密方法。[link]()
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder
        .Entity<Rider>()
        .Property(e => e.Mount)
        .HasConversion(
            v => SomeFunction.Encrypt(v, IOptional<SomeConfig> config),
            v => SomeFunction.Decrypt(v, IOptional<SomeConfig> config));
}