【发布时间】:2021-03-26 04:51:31
【问题描述】:
所以我将我的服务注入到我正在做的 Web API 的 Startup.cs 中。我有两个上下文,SubscriptionDbContext 和 ApplicationDbContext(Identity)。我正在尝试使用上下文配置 AddIdentity 并引发此错误。 -
类型“Rad302me2021WebAPIS00187127.Data.ApplicationDbContext” 不能用作泛型类型中的类型参数“TContext”或 方法 'IdentityEntityFrameworkBuilderExtensions.AddEntityFrameworkStores(IdentityBuilder)'。 没有隐式引用转换 'Rad302me2021WebAPIS00187127.Data.ApplicationDbContext' 到 'Microsoft.EntityFrameworkCore.DbContext'。 Rad302me2021WebAPIS00187127
现在我知道ApplicationDbContext 必须继承 DbContext,但我正在使用IdentityDbContext,因为这是我在另一个示例中看到的。
这就是我添加它的方式:
services.AddIdentity<ApplicationUser, IdentityRole>(cfg =>
{
cfg.User.RequireUniqueEmail = true;
}).AddEntityFrameworkStores<ApplicationDbContext>();
这似乎也导致了进一步注入上下文的问题
services.AddDbContext<ApplicationDbContext>();
类型“Rad302me2021WebAPIS00187127.Data.ApplicationDbContext” 不能用作泛型类型中的类型参数“TContext”或 方法 'EntityFrameworkServiceCollectionExtensions.AddDbContext(IServiceCollection, 行动、服务生命周期、服务生命周期)'。 没有隐式引用转换 'Rad302me2021WebAPIS00187127.Data.ApplicationDbContext' 到 'Microsoft.EntityFrameworkCore.DbContext'。
只是对 Core API 还不是很熟悉,所以它仍然是一个学习曲线。
ApplicationDbContext 类
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.EntityFrameworkCore;
using Rad302me2021DataLayerS00187127.Models;
namespace Rad302me2021WebAPIS00187127.Data
{
public class ApplicationDbContext : IdentityDbContext
{
public DbSet<ApplicationUser> ApplicatonUsers { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
}
应用用户类
using Microsoft.AspNet.Identity.EntityFramework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Rad302me2021DataLayerS00187127.Models
{
public class ApplicationUser : IdentityUser
{
public string FirstName { get; set; }
public string SecondName { get; set; }
public string Role { get; set; }
}
}
我有另一个样本可以与相同的软件包完美配合。不太确定我错了
【问题讨论】:
-
您能分享一下您是如何声明您的
ApplicationDbContext班级的吗? -
在那里添加了类
-
添加到那里的ApplicationDbContext类中
标签: asp.net-core asp.net-web-api entity-framework-core