我正在使用代码优先创建数据库的npgql v3.1.8和EntityFramework6.Npgsql v3.1.1。
我想使用postgres json字段在列中存储某些用户可定义的设置。因此,第一步是创建一个简单的模型,将列类型作为文本开头。
SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%' ;
name | default_version | installed_version
------------------------+-----------------+-------------------
postgis | 2.1.5 |
postgis_tiger_geocoder | 2.1.5 |
postgis_topology | 2.1.5 |
这可以并且允许json存储在列中 - 很好,但不使用json postgres列类型。现在我删除数据库以便可以重新创建它,并将模型更改为:
[StringLength(1000)]
public string Settings { get; set; }
这是唯一的改变,一切都应该与世界相处得很好。但是,在创建模型时会发生错误(因此永远不会创建数据库)。错误是:
[Column(TypeName = "json")]
public string Settings { get; set; }
嗯,好吧,让我们尝试另一种方法。删除该属性并将以下内容添加到DbContext OnModelCreating覆盖:
System.InvalidOperatiopnException: Sequence contains no matching elements
而且..同样的错误。以前遇到过这个人吗?现在我要回到我的任意长度字符串列 - 至少可行![/ p>