2016-12-13 3 views
4

У меня проблема. Я открыл свой проект сегодня утром и получил ошибку:Неверное имя типа или пространства имен 'OpenIddictDbContext <,,>' не найдено

Тип или пространство имен имя «OpenIddictDbContext < ,,>» не может быть найдено (вы пропали без вести с помощью директивы или ссылка на сборку?) [Netcoreapp1.1]

Эта ошибка возникла, когда я восстановил и построил свой проект. Это странно, потому что у меня есть «OpenIddict»: «1.0.0- *», в моем файле project.json, и я использую ссылку: с использованием 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<ApplicationUser, ApplicationRole, Guid> 
    { 

или

//the error: 'OpenIddictDbContext<ApplicationUser, ApplicationRole, Guid>' 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" 
    } 
    } 
} 

Странно, потому что каждый проект, который я открываю в своем визуальном коде, имеет эту ошибку, поэтому я не думаю, что это связано с моим проектом.

+0

Включили ли вы пространство имен класса OpenIddictDbContext в использовании заявление? –

+0

Да, я сделал ... это странно, потому что я также добавил его в свой проект. Json – hxwtch

ответ

6

Начиная с бета2, OpenIddict больше не поставляется с выделенным DbContext, вы можете подклассом, так как этот шаблон - унаследованный от ASP.NET Core Identity - оказался довольно непрактичным.

Вместо этого, вы теперь рекомендуется непосредственно наследовать от IdentityDbContext и зарегистрировать наборы сущностей, необходимых OpenIddict по телефону options.UseOpenIddict() из ConfigureServices:

project.json:

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

Запуск:

services.AddDbContext<ApplicationDbContext>(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>(); 
}); 

ApplicationDbContext:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    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); 
    } 
} 
+0

Примечание: вы можете найти последние образцы здесь: https://github.com/openiddict/openiddict-samples. – Pinpoint

+0

У меня такая же проблема, что и эти 3 в ошибках project.json, пытающихся извлечь OpenIddict.EntityFrameworkCore. Похоже, вы не добавили бета-версии OpenIddict – Dave

+0

@Dave, если вы хотите, чтобы я вам помог, вам придется публиковать более подробную информацию об ошибках, которые вы получаете. В противном случае невозможно сказать, что их вызывает. – Pinpoint

Смежные вопросы