PostgreSQL Array 数组类型与 FreeSql 打出一套【组合拳】

本文介绍了PostgreSQL数据库的数组类型及其在FreeSql ORM中的应用,特别是新增的PgArrayToMany导航属性,支持对数组类型的级联查询、贪婪加载等功能。FreeSql为PostgreSQL的数组类型提供了便捷的操作,简化了多维数组的使用,同时具备丰富的表达式函数、批量操作及多种数据库支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

PostgreSQL 是世界公认的功能最强大的开源数据库,除了基础数据类型 int4/int8/varchar/numeric/timestamp 等,还支持 int4[]/int8[]/varchar[]/numeric[]/timestamp[] 数组类型、hstore 类型(类似 c# Dictionary<string, string>)、gis 类型。

选择一项技术一定是可以帮助我们提升效率,并且使用一定是非常简便的,才能让我们赚取更多时间,早点下班甚至上班摸鱼。这篇文章主要讲数组类型,如何与 FreeSql 打出简便高效的【组合拳】。

PostgreSQL 可以为每一种类型创建数组,比如 int4 对应的数组类型是 int4[]、varchar 对应的数据类型是 varchar[]。

PostgreSQL 虽然支持多维数组,但是不建议使用,因为实际使用中会带来很多操作麻烦,违背了使用简便的初衷。一维数组足够应付很多场景。

FreeSql 本身已经支持五种导航属性,OneToOne/ManyToOne/OneToMany/ManyToMany/Parent,为它们量身打造了级联保存、贪婪加载、延迟加载、级联删除(递归)、CTE递归查询等功能。

今天 FreeSql 为 PostgreSQL Array 数组类型提供了第六种新的导航属性 PgArrayToMany 专属功能。


数组映射

FreeSql 支持 int[] 映射 int4[]

string[] 映射 varchar[]

DateTime[] 映射 timestamp[]

class Model
{
    public Guid Id { get; set; }
    public int[] TypeIds { get; set; }
    public Guid[] UserIds { get; set; }
}

等等,常用的类型都可以直接用数组进行映射,之后就可以像普通类型一样进行 CRUD 操作了。

var model = new Model
{
    Id = Guid.NewGuid(),
    TypeIds = new int[] { 1,2,3 },
    UserIds = new Guid[] { Guid.NewGuid(), Guid.NewGuid() }
};
fsql.Insert(model).ExecuteAffrows(); //插入
fsql.Update<Model>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值