为什么在DbContext中添加IdentityDbContext会给我一个错误?

问题描述 投票:1回答:1

在我的ASP.NET Core 3.1应用程序中,我开始使用身份认证。 我意识到我有两个类 ApplebyContext (我的数据库上下文)和 ApplicationDbContext (继承 IdentityDbContext). 我不想为此分开文件,经过一番搜索,我看到常见的做法是将两个文件合并在一起。

考虑到这一点,我试图这样做,但我收到了错误。 我有我的'DBContext'代码,它看起来像这样。

using Appleby.Data;
using Microsoft.EntityFrameworkCore;

namespace Appleby.Repo
{
    public class ApplebyContext : DbContext
    {
        public ApplebyContext(DbContextOptions<ApplebyContext> options)
            : base(options)
        {
        }
        public DbSet<Products> Products { get; set; }
        public DbSet<Contact> Contacts { get; set; }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);
        }
    }
}

我也有我的 ApplicationDbContext (我在实施身份识别时在另一个项目中建立的),它看起来像这样。

using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using WebApplication1.Models;

namespace WebApplication1.Data
{
    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }
    }

}

我所看到的,我所需要做的就是声明我的... ... ApplebyContext 会继承 IdentityDbContext所以我合并了这样的代码。

using Appleby.Data;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.EntityFrameworkCore;

namespace Appleby.Repo
{
    public class ApplebyContext : IdentityDbContext<ApplicationUser>
    {
        public ApplebyContext(DbContextOptions<ApplebyContext> options)
            : base(options)
        {
        }
        public DbSet<Products> Products { get; set; }
        public DbSet<Contact> Contacts { get; set; }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            base.OnModelCreating(builder);
        }
    }
}

但是,我得到一个错误的 optionspublic ApplebyContext(DbContextOptions<ApplebyContext> options) : base(options) 的。

"Appleby.Repo.ApplebyContext "类型不能用作通用类型或方法 "DbContextOptions "中的类型参数 "TContext"。从'Appleby.Repo.ApplebyContext'到'Microsoft.EntityFrameworkCore.DbContext'没有隐式引用转换。

有谁能帮助我吗?是我漏掉了一个引用,还是我的设置不正确?

c# entity-framework asp.net-core identity
1个回答
0
投票

你必须安装 Microsoft.AspNetCore.Identity.EntityFrameworkcoreAsp.Identity.EntityFrameworkcore.

© www.soinside.com 2019 - 2024. All rights reserved.