如何修复:“ IDataProtectionBuilder”不包含“ PersistKeysToDbContext”的定义,也没有可访问的扩展名

时间:2019-07-26 09:20:08

标签: c# .net-core entity-framework-core

我正在尝试使用来自services.AddDataProtection()的PersistKeysToDbContext扩展来持久保存SQL的键。目前,我们正在使用PersistKeysToStackExchangeRedis,它确实运行良好,但是已经确定需要将其移至DB。

我们正在使用一个.net Core 2.2项目,其中添加了以下参考:

  

Microsoft.AspNetCore.DataProtection.EntityFrameworkCore(2.2.0)   Microsoft.AspNetCore.DataProtection.Extensions(2.2.0)   Microsoft.AspNetCore.DataProtection.StackExchangeRedis(2.2.0)(显然对于当前功能而言)

     

Microsoft.EntityFrameworkCore(2.2.0)

services.AddDataProtection().PersistKeysToDbContext<ApplicationDbContext>();

我从编译器中收到以下错误:

“ IDataProtectionBuilder”不包含“ PersistKeysToDbContext”的定义,也找不到可访问的扩展方法“ PersistKeysToDbContext”,该类型接受第一个类型为“ IDataProtectionBuilder”的自变量(您是否缺少using指令或程序集引用?)

1 个答案:

答案 0 :(得分:1)

1)确保已安装Microsoft.AspNetCore.DataProtection.Extensions + Microsoft.AspNetCore.DataProtection.EntityFrameworkCore(作为参考)。

2)将using Microsoft.AspNetCore.DataProtection;添加到Startup.cs(或任何有问题的地方)。

我已经测试过并且可以使用,因此,如果仍然无法使用,则可能需要确保您没有错过任何内容。