繁体   English   中英

实体框架核心 jsonb 列类型

[英]Entity Framework Core jsonb column type

我正在将 Entity Framework Core 与 npgsql postgresql 一起用于 Entity Framework Core。

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

例如:

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

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

提前致谢。

基于 H. Herzl 评论:

我的最终解决方案是这样的:

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. Herzl!

使用 @bruno.almeida 建议的string是一个不错的解决方案,但无法查询

其他方法是使用:

  • 作为 System.Text.Json DOM 类型( JsonDocument或 JsonElement)
  • 作为强类型用户定义类型 (POCO)

JsonDocument是我最喜欢的,因为它可以被查询,设置灵活且快速,例如:

public JsonDocument Customer { get; set; }

更多详细信息,请访问: https : //www.npgsql.org/efcore/mapping/json.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM