首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为MembershipReboot启用实体框架迁移

如何为MembershipReboot启用实体框架迁移
EN

Stack Overflow用户
提问于 2016-08-11 04:29:44
回答 1查看 186关注 0票数 0

我们已经实现了IdentityServer3、MembershipReboot和IdentityManager,并将客户端、作用域和用户存储在SqlServer数据库中。我们还使用CustomUserAccountService类在初始数据库创建期间设置了默认用户。现在,我们希望向UserAccount表添加一个额外的字段,并且不想从头开始重新创建数据库,因此我们希望为UserAccount表启用实体框架迁移。当我们为IdentityServer启用EntityFramework时,我们使用了以下命令:

代码语言:javascript
复制
Enable-Migrations -MigrationsDirectory Migrations\ClientConfiguration -ContextTypeName ClientConfigurationDbContext -ContextAssemblyName IdentityServer3.EntityFramework -ConnectionStringName IdSvr3AndMembershipReboot

Enable-Migrations -MigrationsDirectory Migrations\ScopeConfiguration -ContextTypeName ScopeConfigurationDbContext -ContextAssemblyName IdentityServer3.EntityFramework -ConnectionStringName IdSvr3AndMembershipReboot

Enable-Migrations -MigrationsDirectory Migrations\OperationalConfiguration -ContextTypeName OperationalDbContext -ContextAssemblyName IdentityServer3.EntityFramework -ConnectionStringName IdSvr3AndMembershipReboot

我们在MembershipReboot中查找,我们在其中看到的DbContext名为MembershipRebootDbContext,因此我们尝试执行以下操作:

代码语言:javascript
复制
Enable-Migrations -MigrationsDirectory Migrations\MembRebootConfiguration -ContextTypeName MembershipRebootDbContext -ContextAssemblyName BrockAllen.MembershipReboot.Ef -ConnectionStringName IdSvr3AndMembershipReboot

然而,这返回了这个错误:

代码语言:javascript
复制
The context type 'MembershipRebootDbContext' was not found in the assembly 'BrockAllen.MembershipReboot.Ef'

我们反编译了程序集,在程序集中肯定有一个具有该名称的类型,但我们认为问题可能是它是一个泛型类型,不像客户端、作用域和操作DbContexts,它们不是泛型类型。

是否可以为MembershipReboot启用实体框架迁移?需要哪些命令?

非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2017-03-07 16:24:14

我用一个具体的TUserAccount类创建了一个泛型MembershipRebootDbContext的子类。我添加了一个默认构造函数,它将一个connectionstring名称传递给基本构造函数。

代码语言:javascript
复制
public class MyMembershipRebootDbContext : MembershipRebootDbContext<User>
{
    public MyMembershipRebootDbContext() : base("IdentityServerMembershipDb") {}

    public MyMembershipRebootDbContext(string name)
        : base(name) {}
}

完成后,您应该能够创建迁移,如下所示:

代码语言:javascript
复制
Enable-Migrations -MigrationsDirectory Migrations\MembRebootConfiguration -ContextTypeName MyMembershipRebootDbContext -StartUpProjectName MyProject -ProjectName MyProject -ConnectionStringName IdSvr3AndMembershipReboot
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38882966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档