当我到达步骤:更改数据源时,只有SQL Server提供程序出现在列表中。 (PostgreSQL数据库)没有出现。
我可以执行哪些故障排除步骤来弄清楚它没有出现的原因?
Win7 x32,VS2010 Pro
答案 0 :(得分:2)
希望他们不会删除这个答案,因为我在阅读上一个与你很相似的问题时已经使用了这个答案。经过大约一周的研究和我的头撞到我的桌子后,我终于让我的Npgsql MVC实体框架应用程序工作......并使用向导工作。步骤如下......
1)关闭Visual Studio,然后从https://marketplace.visualstudio.com/items?itemName=RojanskyS.NpgsqlPostgreSQLIntegration下载并安装Npgsql PostgreSQL集成
2)重新启动计算机。 (是的,这是必要的,我保证)
3)打开visual studio并安装以下NuGet包,按列出的顺序和列出的VERSION ...
- > EntityFramework版本6.0.0,然后清理并重建
- > Npgsql 3.1.0,然后清理并重建
- > EntityFramework6.Npgsql 3.1.1,然后清理并重建
注意:如果列出的顺序和版本不能安装其他Nuget软件包,则可能需要卸载它们。如果是这样,请记下并稍后再添加。是的,你需要在上面的每一个之间进行清理/重建。
4)关闭所有应用程序并重新启动计算机。 (是的,这是必要的,我保证)
5)重新启动计算机后,再次打开Visual Studio并转到解决方案。注意:我建议您为数据库连接添加一个新项目,但这更像是一个偏好。
6)再次尝试使用实体框架向导。您应该看到Npgsql选项,它不应该只是崩溃。
答案 1 :(得分:0)
我有同样的问题。手动方式很难。我无法使用它。尝试使用自动设置文件。但是没有任何版本的npgsql包含它。 例如,可以从官方站点使用2.2.5版本(从页面下部设置exe文件):https://github.com/npgsql/npgsql/releases/tag/v2.2.5
答案 2 :(得分:0)
我按照Ashley建议的步骤进行操作,并将其添加到App.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<providers>
<provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, EntityFramework6.Npgsql" />
</providers>
</entityFramework>
</configuration>
还使用了软件包的版本:
<PackageReference Include="EntityFramework">
<Version>6.4.4</Version>
</PackageReference>
<PackageReference Include="EntityFramework6.Npgsql">
<Version>6.4.1</Version>
</PackageReference>
<PackageReference Include="Npgsql">
<Version>4.1.3.1</Version>
</PackageReference>
它开始工作-现在我列出了PostgreSQL数据库数据源-具有.net framework 4.7.2库项目的Visual Studio 2019(16.5.5)(我在其他项目中引用了它)。 PostgreSQL Database data source is now available
不确定是否需要在步骤3)中进行重建,并在4)中进行第二次重启, 想回复最初的阿什利答案,但“您必须有50个声誉” ...