实体框架6.1.3中的Citext数据类型

时间:2016-04-17 10:03:58

标签: .net wpf postgresql entity-framework-6 npgsql

我正在使用.NET 4.5和Entity Framework 6.1.3开发一个WPF桌面应用程序,其代码首先来自数据库方法。

数据库是PostgreSQL,数据提供者是EntityFramework6.Npgsql 3.0.5版。

我的数据库包含多个具有citext数据类型的列,例如电子邮件,因为我希望这些列是唯一的并且不区分大小写。 问题是,当我尝试在visual studio 2015中添加数据模型时,我收到了此警告

错误6005:目标实体框架版本目前不支持数据类型“citext”;

后面有太多错误,根据这个链接,citext数据类型在版本3.0.1中实现。

https://github.com/npgsql/npgsql/issues/695

1 个答案:

答案 0 :(得分:1)

似乎Npgsql支持 ADO.NET 层的Citex数据类型,但不支持实体框架6层。

所以我最终得到了两个解决方案。

1 - 将citex列更改为文本,并在数据库中的不区分大小写的列上使用唯一的较低索引,并使我的应用程序中的所有查询不区分大小写。

2 - 或者在数据库中保留citext类型并使用以前自动生成的模型和 欺骗实体框架(使用带有citext属性的字符串)。

有关Npgsql开发团队的更多详细信息,请参阅此链接。 https://github.com/npgsql/npgsql/issues/1029

相关问题