Npgsql 异常:列 c.consrc 不存在
Posted
技术标签:
【中文标题】Npgsql 异常:列 c.consrc 不存在【英文标题】:Npgsql exception: Column c.consrc does not exist 【发布时间】:2020-06-01 04:41:41 【问题描述】:我有一个 Postgres 12 数据库,目前只包含一个简单的表:
CREATE TABLE public.messages
(
sender text COLLATE pg_catalog."default",
"timestamp" timestamp with time zone,
message_id bigint,
text text COLLATE pg_catalog."default",
priority bigint,
parameters text[] COLLATE pg_catalog."default"
)
不,我想使用 Npgsql 使用 C# 和实体框架构建 GUI。我安装了 Nuget 包:
Install-Package EntityFramework6.Npgsql
它成功了:
Successfully installed 'EntityFramework6.Npgsql 6.4.0' to TestClient
接下来,我为 VS 2019 (found here) 安装了 Npgsql 集成。当我尝试通过在解决方案资源管理器中右键单击它来将 ADO.NET 实体数据模型添加到我的项目时,我可以添加一个连接并且连接测试成功(在向导中完成)。我可以继续选择我的表,但只要我按下完成,我就会收到错误消息:
这是控制台输出:
由于以下异常,无法生成模型: 'System.Data.Entity.Core.EntityCommandExecutionException:一个错误 执行命令定义时发生。见内 细节例外。 ---> Npgsql.PostgresException: 42703: 列 c.consrc 不存在
我能做什么?
【问题讨论】:
您使用的是哪个 .Net 框架?如果是.Net Core,需要Npgsql.EntityFrameworkCore.PostGreSQL 我正在使用/定位 .NET Framework 4.6(不是 .NET Core)和 Windows 窗体,所以我认为这个包应该没问题。 【参考方案1】:PG12 删除了 pg_constraint.consrc,这是 PG12 跟踪的删除了 pg_constraint.consrc。在发布修复程序之前,降级到 PG11 应该可以工作。
【讨论】:
注意:刚刚发布了 EntityFramework6.Npgsql 6.4.1 并对此进行了修复,您可以尝试一下吗? 现在可以使用了,感谢更新!但是next problem is already there ;-)以上是关于Npgsql 异常:列 c.consrc 不存在的主要内容,如果未能解决你的问题,请参考以下文章
使用 Daper.Net 和 NPGSQL 将数据插入 PostgreSQL jsonb 列