【问题标题】:I have an error setting up connection string in asp.net core using app JSON and dependency injection我在使用应用程序 JSON 和依赖注入的 asp.net 核心中设置连接字符串时出错
【发布时间】: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


【解决方案1】:

该错误非常清楚地表明您的上下文不是从DbContext 继承的。但是,您已经发布了上述上下文的代码,它实际上继承自 DbContext。假设代码是正确的,那么唯一有意义的是它不是 正确的 DbContext

如果您仔细查看该错误,您会看到它提到上下文需要从 Microsoft.EntityFrameworkCore.DbContext 继承。我的猜测是你的实际上继承自EntityFramework.DbContext,即不是 EF Core,而是EF6。

如果是这种情况,您不能使用 AddDbContext,因为它适用于 Entity Framework Core,而不适用于 EF6。当您打算引用 Entity Framework Core 时,您可能不小心引用了 Entity Framework NuGet。确保你的包引用是Microsoft.EntityFrameworkCore,而不是EntityFramework

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-03
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多