繁体   English   中英

AddDbContext 在 .NET 核心的 IServiceCollection 中不可用

[英]AddDbContext not available in IServiceCollection in .NET Core

我在 Visual Studio 2017 中有 .NET Core 2 项目。我正在尝试添加 (Postgresql) 数据库连接。 这是一个代码:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext(options =>
        options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

    // Add framework services.
    services.AddMvc();
}

但是编译器抱怨这条消息:

IServiceCollection 不包含“AddDbContext”的定义,并且找不到接受“IServiceCollection”类型的第一个参数的扩展方法“AddDbContext”(是否缺少 using 指令或程序集引用?)

我安装了 NuGet package Npgsql。 我还尝试安装 NuGet package EntityFramework,但我收到错误消息:

Package 恢复失败。 回滚“MyProject”的 package 更改。

这是我问题的根源吗? 我应该安装其他库吗?

在这个问题上,使用了 AddEntityFramework() 和 AddEntityFrameworkNpgsql() 程序,但我的项目中的编译器也无法识别这两个程序。

我在Visual Studio 2017中有.NET Core 2项目。我正在尝试添加(Postgresql)数据库连接。 这是一个代码:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext(options =>
        options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

    // Add framework services.
    services.AddMvc();
}

但是编译器抱怨以下消息:

IServiceCollection不包含“ AddDbContext”的定义,找不到可以接受类型为“ IServiceCollection”的第一个参数的扩展方法“ AddDbContext”(是否缺少using指令或程序集引用?)

我安装了NuGet软件包Npgsql。 我也尝试安装NuGet软件包EntityFramework,但收到错误消息:

程序包还原失败。 回滚“ MyProject”的程序包更改。

这是我问题的根源吗? 我应该安装其他库吗?

在这个问题上,使用了AddEntityFramework()和AddEntityFrameworkNpgsql()程序,但是在我的项目中,编译器无法识别这两个程序。

我在Visual Studio 2017中有.NET Core 2项目。我正在尝试添加(Postgresql)数据库连接。 这是一个代码:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext(options =>
        options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

    // Add framework services.
    services.AddMvc();
}

但是编译器抱怨以下消息:

IServiceCollection不包含“ AddDbContext”的定义,找不到可以接受类型为“ IServiceCollection”的第一个参数的扩展方法“ AddDbContext”(是否缺少using指令或程序集引用?)

我安装了NuGet软件包Npgsql。 我也尝试安装NuGet软件包EntityFramework,但收到错误消息:

程序包还原失败。 回滚“ MyProject”的程序包更改。

这是我问题的根源吗? 我应该安装其他库吗?

在这个问题上,使用了AddEntityFramework()和AddEntityFrameworkNpgsql()程序,但是在我的项目中,编译器无法识别这两个程序。

我在Visual Studio 2017中有.NET Core 2项目。我正在尝试添加(Postgresql)数据库连接。 这是一个代码:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext(options =>
        options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

    // Add framework services.
    services.AddMvc();
}

但是编译器抱怨以下消息:

IServiceCollection不包含“ AddDbContext”的定义,找不到可以接受类型为“ IServiceCollection”的第一个参数的扩展方法“ AddDbContext”(是否缺少using指令或程序集引用?)

我安装了NuGet软件包Npgsql。 我也尝试安装NuGet软件包EntityFramework,但收到错误消息:

程序包还原失败。 回滚“ MyProject”的程序包更改。

这是我问题的根源吗? 我应该安装其他库吗?

在这个问题上,使用了AddEntityFramework()和AddEntityFrameworkNpgsql()程序,但是在我的项目中,编译器无法识别这两个程序。

我在Visual Studio 2017中有.NET Core 2项目。我正在尝试添加(Postgresql)数据库连接。 这是一个代码:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext(options =>
        options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

    // Add framework services.
    services.AddMvc();
}

但是编译器抱怨以下消息:

IServiceCollection不包含“ AddDbContext”的定义,找不到可以接受类型为“ IServiceCollection”的第一个参数的扩展方法“ AddDbContext”(是否缺少using指令或程序集引用?)

我安装了NuGet软件包Npgsql。 我也尝试安装NuGet软件包EntityFramework,但收到错误消息:

程序包还原失败。 回滚“ MyProject”的程序包更改。

这是我问题的根源吗? 我应该安装其他库吗?

在这个问题上,使用了AddEntityFramework()和AddEntityFrameworkNpgsql()程序,但是在我的项目中,编译器无法识别这两个程序。

我在Visual Studio 2017中有.NET Core 2项目。我正在尝试添加(Postgresql)数据库连接。 这是一个代码:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext(options =>
        options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

    // Add framework services.
    services.AddMvc();
}

但是编译器抱怨以下消息:

IServiceCollection不包含“ AddDbContext”的定义,找不到可以接受类型为“ IServiceCollection”的第一个参数的扩展方法“ AddDbContext”(是否缺少using指令或程序集引用?)

我安装了NuGet软件包Npgsql。 我也尝试安装NuGet软件包EntityFramework,但收到错误消息:

程序包还原失败。 回滚“ MyProject”的程序包更改。

这是我问题的根源吗? 我应该安装其他库吗?

在这个问题上,使用了AddEntityFramework()和AddEntityFrameworkNpgsql()程序,但是在我的项目中,编译器无法识别这两个程序。

我在使用Sqlite 时遇到了这个问题。

  1. 我从Nuget galary安装了Microsoft.EntityFrameworkCore.Sqlite
  2. 我将软件包安装在StartUp.cs文件所在的文件夹下。
  3. StartUP.cs 中使用 Microsoft.EntityFrameworkCore引入

这解决了我的问题。

如果你的持久层在另一个项目( Class Library )中,并且你已经在持久层上安装了一个合适的 NuGet 库,比如Npgsql.EntityFrameworkCore.PostgreSQL ,那么build是必要的,尤其是当你使用VS Code 否则,它可能无法识别services.AddDbContext<T>

对于 ASP.Net 核心,从命令提示符。

dotnet 添加包 Npgsql.EntityFrameworkCore.PostgreSQL

对于安装特定版本,dotnet 添加包 Npgsql.EntityFrameworkCore.PostgreSQL --version 6.0.0

使用以下命令将PostgreSQL package具体版本添加到你的项目中

dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL --version 6.0.0

以下命令将添加最新的 package。

dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL

在 Visual Studio 2022 上全新安装 EntityFrameworkCore.SQLServer 和 Design 后出现同样的问题。

重新启动 Visual Studio 成功了!

对于 .net 核心 6,它需要Microsoft.EntityFrameworkCore.Design

对于在多个项目中使用 VS Code 的任何人:

定位您已在其中添加实体框架的项目。

对于 Windows:

  1. Ctrl+Shift+P
  2. OmniSharp: Select Project(选择你添加实体框架的项目)

我在Visual Studio 2017中有.NET Core 2项目。我正在尝试添加(Postgresql)数据库连接。 这是一个代码:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext(options =>
        options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));

    // Add framework services.
    services.AddMvc();
}

但是编译器抱怨以下消息:

IServiceCollection不包含“ AddDbContext”的定义,找不到可以接受类型为“ IServiceCollection”的第一个参数的扩展方法“ AddDbContext”(是否缺少using指令或程序集引用?)

我安装了NuGet软件包Npgsql。 我也尝试安装NuGet软件包EntityFramework,但收到错误消息:

程序包还原失败。 回滚“ MyProject”的程序包更改。

这是我问题的根源吗? 我应该安装其他库吗?

在这个问题上,使用了AddEntityFramework()和AddEntityFrameworkNpgsql()程序,但是在我的项目中,编译器无法识别这两个程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM