【问题标题】:Identity ApplicationDbContext with ninject使用 ninject 标识 ApplicationDbContext
【发布时间】:2015-05-17 13:20:01
【问题描述】:

我正在为我的实体使用 ninject 并创建了一个自定义 dbcontext,它包含我的 poco 类。这是 CusDbContext 。然后,我通过将 *this 作为参数添加到 ApplicationDbContext

的基类构造函数中,将其添加到标识中
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("CusDbContext", throwIfV1Schema: false)
    {
    }

所以现在在我的 webconfig 中,连接字符串设置为 CusDbContext。这一切都很好。在初始创建时(当我注册用户并且.net 在后台使用所有用户表创建数据库时) 顺便说一下这个数据库是本地的(local)\v11.0

创建了表并添加了用户,一切正常。然后,当我首先为代码添加迁移时,它会声明

在程序集中发现了多个上下文类型

很酷,所以我使用了我的 CusDbContext

PM>Enable-Migrations -ContextTypeName Library.Data.Concrete.CusDbContext
PM>Add-Migration init

我得到了错误

Library.Data.Concrete.IdentityUserLogin: : EntityType 'IdentityUserLogin' 没有定义键。为此定义密钥 实体类型。

虽然是 viewModel (O.o)

为什么迁移尝试将视图模型添加为实体?有没有办法使用身份默认文件来拥有一种上下文类型?我还是想用ninject。

【问题讨论】:

  • 你能证明你没有在ApplicationDbContextDbSet&lt;IdentityUserLogin&gt;吗?
  • @adricadar 我不知道该怎么做。 IdentityUserLogin 在 AccountViewModel 类文件中。

标签: asp.net-mvc entity-framework asp.net-identity


【解决方案1】:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
    }

在 ApplicationDbContext 上需要它才能构建。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-09
    • 2015-07-21
    • 2018-02-14
    • 2016-07-15
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多