2017-03-29 152 views
2

我正在使用实体框架核心与npgsql postgresql实体框架核心。实体框架核心jsonb列类型

我的问题是,使用迁移,我如何标记一个类属性来生成JSONB列类型?

例如:

public class MyTableClass 
{ 
    public int Id { get; set; } 

    // My JSONB column 
    public string Data { get; set; } 
} 

预先感谢。

+2

你有没有尝试过Byte []和实体映射设置列类型为jsonb? –

+0

你能够使用ef核心查询jsonb吗?例如要查询json doc – zaitsman

+0

zaitsman的属性,认为这是不可能的。看看https://github.com/aspnet/EntityFrameworkCore/issues/4021。我有一个SQL查询。我正在使用它来阅读结果:https://github.com/aspnet/EntityFrameworkCore/issues/1862#issuecomment-331081468。我已经发现这个代码有问题,与DateTimeOffset和DateTime有关。如果你遇到这个问题,我可以告诉你我的解决方法。 –

回答

4

基于H.赫茨尔评论:

我最终的解决办法是这样的:

public class MyTableClass 
{ 
    public int Id { get; set; } 

    [Column(TypeName = "jsonb")] 
    public string Data { get; set; } 
} 

迁移产生这样的:

Data = table.Column<string>(type: "jsonb", nullable: true), 

当迁移更新数据库,数据列是使用jsonb类型正确创建的。

谢谢H.赫茨尔!