我正在尝试使用 Entity Framework 6,并将其连接到 Postgresql 数据库。
我正在使用 npgsql.Entityframework,但在创建 ddex 文件时出现错误。
有人知道为什么吗?
谢谢。
最佳答案
安装 Npgsql,在 Entity Framework 和 PostgreSql 之间工作:
- 从https://github.com/npgsql/npgsql/releases 下载并安装Setup_NpgsqlDdexProvider.exe .
- 打开 Visual-Studio,单击选项卡:TOOLS -> Setup Npgsql DbProviderFactories。 将打开一个窗口,您需要单击“确定”。
- 关闭 Visual-Studio 并使用记事本以 管理员 打开 .NET 的两个 machine.config 文件。
我们需要编辑两个文件,您可以在路径中找到该文件:
- C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
将流动元素添加到文件中:
<system.data>
<DbProviderFactories>
<remove invariant="Npgsql"/>
<add name="Npgsql Data Provider"
invariant="Npgsql"
description=".Net Data Provider for PostgreSQL"
type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"
support="FF" />
</DbProviderFactories>
</system.data>
- 在需要的项目中重新打开 Visual-Studio。
- 通过 Nuget 安装 Entity Framework 。
打开包管理器控制台并插入命令:
Install-Package EntityFramework6.Npgsql
检查所需的 DLL 是否为引用,如下所示:
如果没有手动添加DLL。应该在路径上:
- C:\Users\YOURCOMPUTERNAME\documents\visual studio 2015\Projects\PostgreSqlVsEfwDemo\packages\Npgsql.3.0.5\lib\net45\Npgsql.dll
- C:\Users\ YOURCOMPUTERNAME\documents\visual studio 2015\Projects\PostgreSqlVsEfwDemo\packages\EntityFramework6.Npgsql.3.0.5\lib\net45\EntityFramework6.Npgsql.dll
打开 App.config\Web.config 并添加两个元素:
entityFramework -> providers 中的 provider 元素。这样:
DbProviderFactories 中的提供者元素。这样:
<system.data> <DbProviderFactories> <remove invariant="Npgsql" /> <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" support="FF" /> </DbProviderFactories>
如果<system.data>
元素不存在,全部添加。
- 现在让我们像这样添加实体数据模型:
- 选择“来自数据库的 EF 设计器”
- 点击“新建连接”
单击“测试连接”以查看它是否有效。
像往常一样继续使用 Entity Framework。
希望对你有帮助。
This document Npgsql Docs 确实帮助了我,但仍然存在问题。
关于c# - 使用 EF6 创建 ddex 的 Postgresql 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35570400/