【发布时间】:2019-08-23 14:38:33
【问题描述】:
我是 Asp.Net Core 的新手。我正在尝试按照 Microsoft 官方教程博客页面上的建议设置我的连接字符串。 在我的 appsettings.json 中,我粘贴了以下代码。
"ConnectionStrings":
{
"PersonDBContext": "Server=(localdb)\\mssqllocaldb;Database=name;Trusted_Connection=True;MultipleActiveResultSets=true"
}
我的Startup.cs 文件包含
services.AddDbContext<PersonDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("PersonDBContext")));
我从 DbContext 继承了 PersonDbContext。
但是在编译时会抛出以下错误。
严重性代码描述项目文件行源抑制 状态错误 CS0311 类型“Gumshuda.DAL.PersonDBContext”不能是 在泛型类型或方法中用作类型参数“TContext”
'EntityFrameworkServiceCollectionExtensions.AddDbContext
IServiceCollection,操作,ServiceLifetime, 服务寿命)'。没有隐式引用转换 'Gumshuda.DAL.PersonDBContext' 到 'Microsoft.EntityFrameworkCore.DbContext'。古姆舒达
C:\Users\nas\source\repos\Gumshuda\Gumshuda\Startup.cs 38
智能感知活动
请告诉我如何修复它以及依赖注入。
我的PersonDbContext如下
public class PersonDBContext:DbContext
{
public DbSet<Person> People { get; set; }
}
【问题讨论】:
-
你能展示一下 PersonDBContext 的实现吗?
-
您的 PersonDBContext 是否扩展了 DbContext?
-
@kriss 我已经用 PersonDbContext 的实现更新了我的问题。是的,它确实扩展了 DbContext
-
这不对,扩展 dbcontext 会强制你有一定的构造函数
-
这个构造器应该存在:public PersonDBContext(DbContextOptions
options) : base(options) { }
标签: c# model-view-controller dependency-injection asp.net-core-2.1