找不到类型或命名空间名称“OpenIddictDbContext ”

我有个问题。 我今天早上打开了我的项目并得到了错误:

找不到类型或命名空间名称’OpenIddictDbContext ‘(您是否缺少using指令或程序集引用?)[netcoreapp1.1]

我恢复并构建项目时发生此错误。 这很奇怪,因为我在我的project.json文件中有“OpenIddict”:“1.0.0- *” ,我正在使用引用: using OpenIddict ;

这个问题在我的项目中无处不在,因为他似乎没有认识到“使用OpenIddict”

如果它有帮助,这是我得到错误的例子(ApplicationDbContext.cs)

namespace Overnight.Db { //the error: The type or namespace name 'OpenIddictDbContext' could not be found (are you missing a using directive or an assembly reference?) public class ApplicationDbContext : OpenIddictDbContext { 

要么

  //the error: 'OpenIddictDbContext' does not contain a constructor that takes 1 arguments protected override void OnModelCreating(ModelBuilder builder) { 

这是我的project.json:

 { "version": "1.0.0-*", "buildOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.1.0" }, "Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final", "AspNet.Security.Oauth.Validation": "1.0.0-alpha2-final", "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0", "OpenIddict": "1.0.0-*", "Npgsql.EntityFrameworkCore.PostgreSQL": "1.0.1-*", "Npgsql.EntityFrameworkCore.PostgreSQL.Design": "1.0.1-*", "Bogus": "7.1.6", "Overnight.Models": { "target": "project", "version": "1.0.0-*" } }, "frameworks": { "netcoreapp1.1": {} }, "tools": { "Microsoft.EntityFrameworkCore.Tools": { "version": "1.0.0-preview2-final" } } } 

这很奇怪,因为我在可视代码中打开的每个项目都有这个错误,所以我不认为它与我的项目有关。

从beta2开始,OpenIddict不再带有可以子类化的专用DbContext ,因为这种模式 – 从ASP.NET Core Identityinheritance – 被certificate是相当不切实际的。

相反,现在鼓励您直接从IdentityDbContextinheritance并通过从ConfigureServices调用options.UseOpenIddict()来注册OpenIddict所需的实体集:

project.json:

 "dependencies": { "OpenIddict": "1.0.0-*", "OpenIddict.EntityFrameworkCore": "1.0.0-*", "OpenIddict.Mvc": "1.0.0-*" } 

启动:

 services.AddDbContext(options => { // Configure the context to use Microsoft SQL Server. options.UseSqlServer(configuration["Data:DefaultConnection:ConnectionString"]); // Register the entity sets needed by OpenIddict. // Note: use the generic overload if you need // to replace the default OpenIddict entities. options.UseOpenIddict(); }); // Register the OpenIddict services. services.AddOpenIddict(options => { // Register the Entity Framework stores. options.AddEntityFrameworkCoreStores(); }); 

ApplicationDbContext:

 public class ApplicationDbContext : IdentityDbContext { public ApplicationDbContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); // Customize the ASP.NET Identity model and override the defaults if needed. // For example, you can rename the ASP.NET Identity table names and more. // Add your customizations after calling base.OnModelCreating(builder); } }