2017-03-29 156 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.赫茨爾!