You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF6 PostgreSQL Database First无法生成模型:数据源无PostgreSQL选项

解决方案:ADO.NET实体模型找不到PostgreSQL数据源

我之前在使用EF6结合Npgsql生成数据库模型时也碰到过一模一样的问题,下面是几个亲测有效的解决步骤,你可以逐一尝试:


1. 重新调整NuGet包的安装顺序与配置

有时候包安装顺序不对会导致驱动没有正确注册,建议按以下步骤操作:

  • 先卸载已安装的三个NuGet包:EntityFramework、Npgsql、Npgsql.EntityFramework,顺便清理项目根目录下的packages文件夹(如果存在)
  • 按**Npgsql(2.2.7) → Npgsql.EntityFramework(2.2.7) → EntityFramework(6.2.0)**的顺序重新安装
  • 安装完成后,打开项目的App.config,检查是否存在DbProviderFactories配置节点。如果没有,手动添加以下内容(注意版本号要和你安装的Npgsql版本一致):
<configuration>
  <!-- 其他配置节点 -->
  <system.data>
    <DbProviderFactories>
      <remove invariant="Npgsql" />
      <add name="Npgsql Data Provider" 
           invariant="Npgsql" 
           description=".Net Data Provider for PostgreSQL" 
           type="Npgsql.NpgsqlFactory, Npgsql, Version=2.2.7.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" />
    </DbProviderFactories>
  </system.data>
</configuration>

2. 手动在VS中添加PostgreSQL数据源

如果图形界面的数据源列表没加载出PostgreSQL,可以手动指定驱动:

  • 打开VS的服务器资源管理器,右键点击「数据连接」→「添加连接」
  • 在弹出的窗口中,点击数据源右侧的「更改」按钮
  • 若列表中没有PostgreSQL选项,点击「浏览」,找到项目packages目录下的Npgsql.dll(路径示例:../packages/Npgsql.2.2.7/lib/net45/Npgsql.dll),选中后PostgreSQL就会出现在数据源列表里
  • 填写数据库连接信息并测试连接,确认成功后,再去创建ADO.NET实体模型就能选择这个已配置好的连接了

3. 检查VS版本兼容性

Npgsql 2.2.7对Visual Studio版本有要求,它主要支持VS2012到VS2017。如果你用的是VS2019及以上版本,可能会出现兼容性问题:

  • 如果可以升级包版本,建议将Npgsql和Npgsql.EntityFramework升级到3.2.x版本(这个版本完美兼容EF6.2.0和高版本VS)
  • 如果必须使用2.2.7版本,建议切换到VS2017或更低版本尝试

4. 改用EF反向工程命令行工具

如果图形界面始终无法正常工作,可以直接用NuGet包管理器控制台的命令生成模型:

  • 打开VS的包管理器控制台(路径:Tools → NuGet Package Manager → Package Manager Console)
  • 将默认项目切换为你的控制台应用项目
  • 运行以下命令(替换成你的数据库连接字符串):
Scaffold-DbContext "Server=你的服务器地址;Port=5432;Database=你的数据库名;User Id=用户名;Password=密码;" Npgsql.EntityFramework -OutputDir Models

执行完成后,项目会自动生成Models文件夹,里面包含所有数据库表对应的实体类和DbContext,效果和图形界面创建的完全一致


内容的提问来源于stack exchange,提问作者Luciferous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:28:35