IDbContextFactory未实现方法或操作

时间:2017-09-13 13:05:43

标签: c# entity-framework migration ef-migrations identityserver4

我正在使用IdentityServer4。

我想将EF用于配置数据(教程[http://identityserver4.readthedocs.io/en/release/quickstarts/8_entity_framework.html]中的第一步)。

我的statup.cs

namespace IdentityServer
{
    public class Startup
    {
              {
            services.AddMvc();

            var connectionString = @"Data Source=CR08186\\sqlexpress;Initial Catalog=IdentityServer;Persist Security Info=True;User ID=sa;Password=MsSql2008";
            var migrationsAssembly = typeof(Startup).GetTypeInfo().Assembly.GetName().Name;

            // configure identity server with in-memory users, but EF stores for clients and resources
            services.AddIdentityServer()
                .AddTemporarySigningCredential()
                .AddTestUsers(Config.GetUsers())
                .AddConfigurationStore(builder =>
                    builder.UseSqlServer(connectionString, options =>
                        options.MigrationsAssembly(migrationsAssembly)))
                .AddOperationalStore(builder =>
                    builder.UseSqlServer(connectionString, options =>
                        options.MigrationsAssembly(migrationsAssembly)));

        }
}
来自运行dotnet ef migrations add InitialIdentityServerMigration -c PersistedGrantDbContext的cmd的

dotnet ef migrations add InitialIdentityServerPersistedGrantDbMigration -c PersistedGrantDbContext -o Data/Migrations/IdentityServer/PersistedGrantDb

并有错误

  

启动时调用方法'ConfigureServices'时发生错误   class'Startup'。考虑使用IDbContextFactory来覆盖   在设计时初始化DbContext。错误:方法或   操作没有实现。没有DbContext命名   找到了'PersistedGrantDbContext'。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

所以,问题出现在二手数据库中。连接sting包含已存在的数据库。 如果选择新数据库(现在不存在),一切都将正常工作。