Entity Framework核心jsonb列类型
Entity Framework Core jsonb column type
我正在使用 Entity Framework Core 和 npgsql postgresql for Entity Framework Core。
我的问题是,使用迁移,如何标记 class 属性 以生成 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; }
我正在使用 Entity Framework Core 和 npgsql postgresql for Entity Framework Core。
我的问题是,使用迁移,如何标记 class 属性 以生成 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; }