NewLife.XCode 11.16.2024.1101

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package NewLife.XCode --version 11.16.2024.1101                
NuGet\Install-Package NewLife.XCode -Version 11.16.2024.1101                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="NewLife.XCode" Version="11.16.2024.1101" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NewLife.XCode --version 11.16.2024.1101                
#r "nuget: NewLife.XCode, 11.16.2024.1101"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install NewLife.XCode as a Cake Addin
#addin nuget:?package=NewLife.XCode&version=11.16.2024.1101

// Install NewLife.XCode as a Cake Tool
#tool nuget:?package=NewLife.XCode&version=11.16.2024.1101                

NewLife.XCode - 数据中间件

GitHub top language GitHub License Nuget Downloads Nuget Nuget (with prereleases)

数据中间件,聚焦于添删改查、性能和大数据,支持MySQL、SQLite、SqlServer、Oracle、Postgresql、TDengine、达梦、金仓、瀚高。

XCode文档:https://newlifex.com/xcode

数据中间件

功能特点:

化繁为简

建立XML数据模型后,经代码生成得到实体类,即可使用实体类对数据进行添删改查操作。

开发环境默认使用SQLite数据库,发布到生产环境时再配置连接字符串即可。

日常项目中90%的功能开发无需掌握数据库和SQL,降低对开发者的能力要求,特别是Java等其它语言转过来的开发者。

多数据库迁移

支持MySQL、SQLite、SqlServer、Oracle、Postgresql等各种主流数据库,基于XCode开发的应用无需修改编译即可迁移到另一种数据库上。甚至开发数据库和生产数据库是两种不同的数据库,例如常见SQLite开发,生产用MySql。

高性能

极致的多级缓存设计,批量操作优化,单机插入速度最高89万tps,查询速度最高18亿qps飞仙

单表查询配合内存关联(带数据缓存),降低系统复杂度并提升性能。

大数据

正式项目最大单表100亿数据,分页查询的思想贯穿上下。

根据模型表的索引自动生成各种高效的查询方法,让开发者无惧大数据表。

自动分表分库

支持任意数据库按策略自动分表分库,无需修改业务代码,XCode能够自动找到正确的表。

例如星尘跟踪数据按天分表,配置分表策略后,其它添删改查操作跟单表一样:

Meta.ShardPolicy = new TimeShardPolicy(nameof(Id), Meta.Factory)
{
    ConnPolicy = "{0}",
    TablePolicy = "{0}_{1:yyyyMMdd}",
    Step = TimeSpan.FromDays(1),
};
反向工程

根据实体类主动建立数据库表结构并初始化数据(支持所有数据库),开发阶段新增字段,在发布到生产后自动新增,开发者无需准备SQL发布脚本。

跨库数据迁移

支持任意数据库进行数据迁移。跨库数据迁移工具

快速入门

新建项目

打开Visual Studio,新建一个控制台项目,从Nuget引入NewLife.XCode

新建模型

在项目目录下编写一个简单Xml模型文件db.xml,或者下载xcodetool.exe保存到项目目录,运行xcodetool.exe即可得到一个样本模型文件。

<?xml version="1.0" encoding="utf-8"?>
<Tables Version="9.6.6644.19804" Output="MyEntity" NameSpace="Model" BaseClass="Entity" ConnName="DB">
  <Table Name="UserInfo" Description="用户信息">
    <Columns>
      <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="会员id" />
      <Column Name="UserName" DataType="String" Nullable="False" Description="会员名称" />
      <Column Name="Password" DataType="String" Nullable="False" Description="会员密码" />
      <Column Name="Age" DataType="Int32" Description="会员年龄" />
    </Columns>
  </Table>
</Tables>

双击xml文件旁边的xcodetool.exe,这时你会看到生成一个MyEntity文件目录,目录包含了两个文件:用户信息.Biz.cs、用户信息.cs。 “用户信息.cs” 一般称为数据类,每次代码生成都会覆盖,“用户信息.Biz.cs”称为业务类,首次生成后不再覆盖,适合用户在其中写代码。

如果不用xcodetool.exe,也可以从Nuget安装全局工具:dotnet tool install xcodetool -g --prerelease

然后在项目目录下执行命令:xcode db.xml

增删改查

  • Program.cs文件最上面引用命名空间
using XCode;

不然会使用不了Save、Update、Delete等扩展方法。

  • 新增一条数据。注:这里没有指定数据库,所以XCode默认的是sqlite数据库。代码完成后可以直接运行看效果。
var user = new UserInfo();
user.UserName = "张三";
user.Password = "123456";
user.Age = 18;
user.Insert();
//user.Save()等效

Console.WriteLine("插入一条新数据,用户id为:" + user.Id);
  • 修改一条数据
var user = UserInfo.FindById(1);
user.UserName = "张三";
user.Password = "123456";
user.Age = 19;
user.Update();
//user.Save()等效

user = UserInfo.FindById(1);
Console.WriteLine($"用户ID={user.Id}已修改岁数,岁数为:{user.Age}");
  • 删除一条数据
var user = UserInfo.FindById(1);
user.Delete();

user = UserInfo.FindById(1);
Console.WriteLine("用户" + (user == null ? "已删除" : "还存在"));
  • 查询数据,查询是一个十分复杂的需求,这里只举一些简单的例子
// 根据Id查询用户信息
var userId = 2;
var user = UserInfo.FindById(userId);
Console.WriteLine($"ID为{user.Id}用户姓名为:{user.UserName}");

// 根据用户名称查询
var userList = UserInfo.FindAll(UserInfo._.UserName == "张三");
Console.WriteLine($"查询符合姓名为张三的记录有{userList.Count}");

// 多复合条件查询
userList = UserInfo.FindAll(UserInfo._.UserName == "张三" & UserInfo._.Age == 19);
Console.WriteLine($"查询符合姓名为张三年龄为19的记录有{userList.Count}");

高级用法

更新某些字段。在“用户信息.Biz.cs”中新增方法写以下代码会更简洁,内置_类无需类名前缀。

UserInfo.Update(UserInfo._.UserName == "李四" & UserInfo._.Age == 18, UserInfo._.Id == 1);
// 相当于Update UserInfo Set UserName='李四' And Age=18 Where Id=1
// 绕过了缓存,不推荐这种写法。建议先查出来对象,然后修改并Update回去

复杂的查询语句

var userList = UserInfo.FindAll(UserInfo._.UserName == "张三" & UserInfo._.Age == 19, UserInfo._.UserName.Desc(), string.Join(",", UserInfo._.UserName, UserInfo._.Age), 0, 0);
// 相当于Select UserName,Age From UserInfo Where UserName='张三' And Age=19 Order By  UserName desc

带分页排序的复杂查询
一般写在实体类业务文件(.Biz.cs)里面,可以直接使用实体类内置_类而无需加类名前缀。

public static IList<UserInfo> Search(String name, Int32 age, Pager p)
{
    // 多条件复杂查询
    var exp = new WhereExpression();
    if(!name.IsNullOrEmpty()) exp &= _.UserName == name;
    if(age > 0) exp &= _.Age == age;

    return FindAll(exp, p);
}

void Test()
{
    // 默认第一页,每页20行。魔方NewLife.Cube自动从页面Request获取以下参数
    var p = new Pager();
    p.PageIndex = 3;
    p.PageSize = 10;
    p.Sort = UserInfo.__.Age;
    p.Desc = true;

    // 需要总记录数来分页,FindAll后p.TotalCount有总记录数,用于计算页数PageCount
    p.RetrieveTotalCount = true;

    // 相当于Select * From UserInfo Where UserName='张三' And Age=19 Order By Age Desc limit 20, 10
    var list = UserInfo.Search("张三", 19, p);
}

复合排序的分页查询语句

var pageIndex = 2;//第二页
var pageSize = 10;//每页十行

var userList = UserInfo.FindAll(UserInfo._.UserName == "张三" & UserInfo._.Age == 19, " UserName desc,Age asc", string.Join(",", UserInfo._.UserName, UserInfo._.Age), (pageIndex - 1) * pageSize, pageSize);
//相当于Select UserName,Age From UserInfo Where UserName='张三' And Age=19 Order By UserName desc,Age asc limit 10, 10

索引查询

修改XML模型文件,增加索引。

  <Tables>
    <Table Name="UserInfo" Description="用户信息">
      <Columns>
        <Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="会员id" />
        <Column Name="UserName" DataType="String" Nullable="False" Description="会员名称" />
        <Column Name="Password" DataType="String" Nullable="False" Description="会员密码" />
        <Column Name="Age" DataType="Int32" Description="会员年龄" />
      </Columns>
      <Indexes>
        <Index Columns="UserName" Unique="True" />
        <Index Columns="UserName,Age" />
      </Indexes>
    </Table>
  </Tables>

再次运行xcodetool.exe,即可看到,“用户信息.cs”增加了FindByUserName方法。此处不建议认为修改,下次代码生成会覆盖。

    /// <summary>根据会员名称查找</summary>
    /// <param name="userName">会员名称</param>
    /// <returns>实体对象</returns>
    public static UserInfo FindByUserName(String userName)
    {
        if (userName.IsNullOrEmpty()) return null;

        // 实体缓存
        if (Meta.Session.Count < 1000) return Meta.Cache.Find(e => e.UserName.EqualIgnoreCase(userName));

        return Find(_.UserName == userName);
    }

“用户信息.Biz.cs”中增加了Search方法。在Biz业务类中,这个代码可以根据需要修改调整,代码生成器不会覆盖。

    /// <summary>高级查询</summary>
    /// <param name="userName">会员名称</param>
    /// <param name="age">会员年龄</param>
    /// <param name="key">关键字</param>
    /// <param name="page">分页参数信息。可携带统计和数据权限扩展查询等信息</param>
    /// <returns>实体列表</returns>
    public static IList<UserInfo> Search(String userName, Int32 age, String key, PageParameter page)
    {
        var exp = new WhereExpression();

        if (!userName.IsNullOrEmpty()) exp &= _.UserName == userName;
        if (age >= 0) exp &= _.Age == age;
        if (!key.IsNullOrEmpty()) exp &= _.UserName.Contains(key) | _.Password.Contains(key);

        return FindAll(exp, page);
    }

容器化部署

XCode 支持从环境变量中获取数据库连接字符串,用于容器化部署。
连接字符串的环境变量命名规范为 XCode_{ConnName},不区分大小写,连接字符串中需要使用provider指定数据库类型。

新生命项目矩阵

各项目默认支持net8.0/netstandard2.1/netstandard2.0/net4.61/net4.5,旧版(2023.0308)支持net4.0/net2.0

项目 年份 说明
基础组件 支撑其它中间件以及产品项目
NewLife.Core 2002 核心库,日志、配置、缓存、网络、序列化、APM性能追踪
NewLife.XCode 2005 大数据中间件,单表百亿级,MySql/SQLite/SqlServer/Oracle/TDengine/达梦,自动分表
NewLife.Net 2005 网络库,单机千万级吞吐率(2266万tps),单机百万级连接(400万Tcp)
NewLife.Remoting 2011 RPC通信框架,内网高吞吐或物联网硬件设备场景
NewLife.Cube 2010 魔方快速开发平台,集成了用户权限、SSO登录、OAuth服务端等,单表100亿级项目验证
NewLife.Agent 2008 服务管理组件,把应用安装成为操作系统守护进程,Windows服务、Linux的Systemd
NewLife.Zero 2020 Zero零代脚手架,基于NewLife组件生态的项目模板,Web、WebApi、Service
中间件 对接知名中间件平台
NewLife.Redis 2017 Redis客户端,微秒级延迟,百万级吞吐,丰富的消息队列,百亿级数据量项目验证
NewLife.RocketMQ 2018 RocketMQ纯托管客户端,支持Apache RocketMQ和阿里云消息队列,十亿级项目验
NewLife.MQTT 2019 物联网消息协议,MqttClient/MqttServer,客户端支持阿里云物联网
NewLife.IoT 2022 IoT标准库,定义物联网领域的各种通信协议标准规范
NewLife.Modbus 2022 ModbusTcp/ModbusRTU/ModbusASCII,基于IoT标准库实现,支持IoT平台和IoTEdge
NewLife.Siemens 2022 西门子PLC协议,基于IoT标准库实现,支持IoT平台和IoTEdge
NewLife.Map 2022 地图组件库,封装百度地图、高德地图和腾讯地图
NewLife.IP 2022 IP地址库,IP地址转物理地址
产品平台 产品平台级,编译部署即用,个性化自定义
AntJob 2019 蚂蚁调度,分布式大数据计算平台(实时/离线),蚂蚁搬家分片思想,万亿级数据量项目验证
Stardust 2018 星尘,分布式服务平台,节点管理、APM监控中心、配置中心、注册中心、发布中心
NewLife.ERP 2021 企业ERP,产品管理、客户管理、销售管理、供应商管理
CrazyCoder 2006 码神工具,众多开发者工具,网络、串口、加解密、正则表达式、Modbus
XProxy 2005 产品级反向代理,NAT代理、Http代理
HttpMeter 2022 Http压力测试工具
GitCandy 2015 Git源代码管理系统
SmartOS 2014 嵌入式操作系统,完全独立自主,支持ARM Cortex-M芯片架构
SmartA2 2019 嵌入式工业计算机,物联网边缘网关,高性能.NET6主机,应用于工业、农业、交通、医疗
菲凡物联FIoT 2020 物联网整体解决方案,建筑、环保、农业,软硬件及大数据分析一体化,单机十万级点位项目验证
NewLife.UWB 2020 厘米级(10~20cm)高精度室内定位,软硬件一体化,与其它系统联动,大型展厅项目验证

新生命开发团队

XCode

新生命团队(NewLife)成立于2002年,是新时代物联网行业解决方案提供者,致力于提供软硬件应用方案咨询、系统架构规划与开发服务。
团队主导的开源NewLife系列组件已被广泛应用于各行业,Nuget累计下载量高达260余万次。
团队开发的大数据核心组件NewLife.XCode、蚂蚁调度计算平台AntJob、星尘分布式平台Stardust、缓存队列组件NewLife.Redis以及物联网平台NewLife.IoT,均成功应用于电力、高校、互联网、电信、交通、物流、工控、医疗、文博等行业,为客户提供了大量先进、可靠、安全、高质量、易扩展的产品和系统集成服务。

我们将不断通过服务的持续改进,成为客户长期信赖的合作伙伴,通过不断的创新和发展,成为国内优秀的IT服务供应商。

新生命团队始于2002年,部分开源项目具有20年以上漫长历史,源码库保留有2010年以来所有修改记录
网站:https://newlifex.com
开源:https://github.com/newlifex
QQ群:1600800/1600838
微信公众号:
智能大石头

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net45 is compatible.  net451 was computed.  net452 was computed.  net46 was computed.  net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (20)

Showing the top 5 NuGet packages that depend on NewLife.XCode:

Package Downloads
NewLife.Cube.Core

Web快速开发平台,搭建管理后台,灵活可扩展!内部集成了用户权限管理、模板继承、SSO登录、OAuth服务端、数据导出与分享等多个功能模块,在真实项目中经历过单表100亿数据添删改查的考验。

NewLife.Cube

Web快速开发平台,搭建管理后台,灵活可扩展!内部集成了用户权限管理、模板继承、SSO登录、OAuth服务端、数据导出与分享等多个功能模块,在真实项目中经历过单表100亿数据添删改查的考验。

NewLife.XCoder

基于编译型模版引擎的代码生成器,以及众多开发者工具

NewLife.AntJob.Extensions

分布式任务调度系统,纯NET打造的重量级大数据实时计算平台,万亿级调度经验积累。

NewLife.MQ

消息发布订阅持久化

GitHub repositories (5)

Showing the top 5 popular GitHub repositories that depend on NewLife.XCode:

Repository Stars
NewLifeX/X
Core basic components: log (file / network), configuration (XML / JSON / HTTP), cache (memory / redis), network (TCP / UDP / HTTP), RPC framework, serialization (binary / XML / JSON), APM performance tracking. 核心基础组件,日志(文件/网络)、配置(XML/Json/Http)、缓存(内存/Redis)、网络(Tcp/Udp/Http)、RPC框架、序列化(Binary/XML/Json)、APM性能追踪。
NewLifeX/AntJob
分布式任务调度系统,纯NET打造的重量级大数据实时计算平台,万亿级调度经验积累!面向中小企业大数据分析场景。
NewLifeX/Stardust
星尘,轻量级分布式服务框架。配置中心、集群管理、远程自动发布、服务治理。服务自动注册和发现,负载均衡,动态伸缩,故障转移,性能监控。
NewLifeX/XCoder
新生命码神工具,代码生成、网络工具、API工具、串口工具、正则工具、图标工具、加解密工具、地图接口。
landv/LuYao.Toolkit
LuYao.Toolkit 路遥工具箱
Version Downloads Last updated
11.16.2024.1111-beta1312 0 11/11/2024
11.16.2024.1101 627 11/1/2024
11.16.2024.1101-beta0944 58 11/1/2024
11.16.2024.1029-beta0854 108 10/29/2024
11.16.2024.1027-beta0304 99 10/27/2024
11.16.2024.1020-beta0457 157 10/20/2024
11.16.2024.1005 1,076 10/5/2024
11.16.2024.1005-beta0110 64 10/5/2024
11.16.2024.1004 318 10/4/2024
11.16.2024.1004-beta0640 64 10/4/2024
11.16.2024.1004-beta0609 70 10/4/2024
11.16.2024.917-beta0218 173 9/17/2024
11.15.2024.924-beta0808 49 9/24/2024
11.15.2024.922-beta1046 71 9/22/2024
11.15.2024.920-beta0751 66 9/20/2024
11.15.2024.919-beta1613 66 9/19/2024
11.15.2024.919-beta0037 68 9/19/2024
11.15.2024.918-beta0214 85 9/18/2024
11.15.2024.918-beta0213 84 9/18/2024
11.15.2024.918-beta0137 84 9/18/2024
11.15.2024.916-beta0710 91 9/16/2024
11.15.2024.911-beta0346 87 9/11/2024
11.15.2024.910-beta1153 93 9/10/2024
11.15.2024.910-beta0846 92 9/10/2024
11.15.2024.910-beta0831 75 9/10/2024
11.15.2024.910-beta0821 83 9/10/2024
11.15.2024.910-beta0008 66 9/10/2024
11.15.2024.906-beta1427 90 9/6/2024
11.15.2024.904-beta1118 97 9/4/2024
11.15.2024.903-beta0241 87 9/3/2024
11.15.2024.902 1,259 9/2/2024
11.15.2024.902-beta0550 86 9/2/2024
11.15.2024.826-beta0849 179 8/26/2024
11.15.2024.826-beta0725 83 8/26/2024
11.15.2024.821-beta0719 98 8/21/2024
11.15.2024.816-beta1407 113 8/16/2024
11.15.2024.809-beta0608 160 8/9/2024
11.15.2024.806 1,051 8/6/2024
11.15.2024.805 103 8/5/2024
11.15.2024.805-beta0839 69 8/5/2024
11.15.2024.805-beta0300 65 8/5/2024
11.15.2024.803 111 8/3/2024
11.15.2024.803-beta1714 64 8/3/2024
11.15.2024.801 367 8/1/2024
11.15.2024.801-beta0732 73 8/1/2024
11.14.2024.801-beta0147 80 8/1/2024
11.14.2024.731-beta0606 59 7/31/2024
11.14.2024.730-beta0515 49 7/30/2024
11.14.2024.728-beta1354 306 7/28/2024
11.14.2024.728-beta0617 72 7/28/2024
11.14.2024.727-beta1047 75 7/27/2024
11.14.2024.723-beta0709 199 7/23/2024
11.14.2024.721-beta1230 100 7/21/2024
11.14.2024.719-beta0807 62 7/19/2024
11.14.2024.717-beta0857 80 7/17/2024
11.14.2024.717-beta0606 73 7/17/2024
11.14.2024.716-beta0011 86 7/16/2024
11.14.2024.715-beta1000 81 7/15/2024
11.14.2024.714-beta0545 274 7/14/2024
11.14.2024.710-beta0410 189 7/10/2024
11.14.2024.709-beta0201 110 7/9/2024
11.14.2024.708-beta0857 118 7/8/2024
11.13.2024.701 811 7/1/2024
11.13.2024.606 558 6/6/2024
11.13.2024.606-beta0307 91 6/6/2024
11.13.2024.604-beta0826 90 6/4/2024
11.13.2024.604-beta0743 97 6/4/2024
11.13.2024.604-beta0638 91 6/4/2024
11.13.2024.604-beta0556 87 6/4/2024
11.13.2024.603-beta1359 99 6/3/2024
11.13.2024.603-beta0606 94 6/3/2024
11.13.2024.601 194 6/1/2024
11.13.2024.601-beta0425 97 6/1/2024
11.12.2024.528-beta0836 73 5/28/2024
11.12.2024.523-beta0947 104 5/23/2024
11.12.2024.515 1,125 5/15/2024
11.11.2024.417-beta0711 563 4/17/2024
11.11.2024.411-beta0756 90 4/11/2024
11.11.2024.410-beta1244 82 4/10/2024
11.11.2024.409-beta0010 110 4/9/2024
11.11.2024.402 1,255 4/2/2024
11.11.2024.402-beta1631 100 4/2/2024
11.11.2024.330-beta0956 190 3/30/2024
11.11.2024.329-beta1049 83 3/29/2024
11.11.2024.327-beta0940 114 3/27/2024
11.11.2024.325-beta1243 76 3/25/2024
11.11.2024.319-beta0029 104 3/19/2024
11.11.2024.315-beta0558 97 3/15/2024
11.11.2024.314-beta1343 101 3/14/2024
11.11.2024.313-beta0204 97 3/13/2024
11.11.2024.307-beta1212 113 3/7/2024
11.11.2024.303 442 3/3/2024
11.11.2024.303-beta0524 88 3/3/2024
11.10.2024.228-beta1456 221 2/28/2024
11.10.2024.228-beta0803 97 2/28/2024
11.10.2024.222-beta0800 99 2/22/2024
11.10.2024.222-beta0744 88 2/22/2024
11.10.2024.216-beta0839 261 2/16/2024
11.10.2024.203 229 2/3/2024
11.10.2024.112-beta1221 369 1/12/2024
11.10.2024.101 1,303 1/1/2024
11.10.2023.1218-beta0938 140 12/18/2023
11.10.2023.1210-beta1346 137 12/10/2023
11.10.2023.1209-beta0038 112 12/9/2023
11.10.2023.1201 2,092 12/1/2023
11.10.2023.1126-beta0047 211 11/26/2023
11.10.2023.1124-beta2252 104 11/24/2023
11.10.2023.1121-beta1004 120 11/21/2023
11.10.2023.1120-beta1457 111 11/20/2023
11.10.2023.1114-beta0656 110 11/14/2023
11.10.2023.1110-beta1324 97 11/10/2023
11.10.2023.1107-beta0007 97 11/7/2023
11.10.2023.1101 1,085 11/1/2023
11.10.2023.1031-beta0023 98 10/31/2023
11.10.2023.1028-beta0100 109 10/28/2023
11.10.2023.1026-beta0051 109 10/26/2023
11.10.2023.1022-beta1416 129 10/22/2023
11.10.2023.1020-beta0112 117 10/20/2023
11.10.2023.1012 961 10/12/2023
11.10.2023.1010-beta0956 121 10/10/2023
11.9.2023.930-beta0438 186 9/30/2023
11.9.2023.909-beta0001 160 9/9/2023
11.9.2023.831-beta0724 191 8/31/2023
11.9.2023.831-beta0237 99 8/31/2023
11.9.2023.830-beta0636 114 8/30/2023
11.9.2023.829-beta0727 427 8/29/2023
11.9.2023.826-beta0001 115 8/26/2023
11.9.2023.823-beta1153 232 8/23/2023
11.9.2023.822-beta1617 118 8/22/2023
11.9.2023.822-beta1556 97 8/22/2023
11.9.2023.817-beta0324 131 8/17/2023
11.9.2023.815-beta0614 119 8/15/2023
11.9.2023.812-beta0822 137 8/12/2023
11.9.2023.806-beta1039 139 8/6/2023
11.9.2023.803-beta1733 118 8/3/2023
11.9.2023.801 1,125 8/1/2023
11.9.2023.801-beta0706 140 8/1/2023
11.8.2023.723-beta0540 143 7/23/2023
11.8.2023.711-beta0326 156 7/11/2023
11.8.2023.707-beta0320 388 7/7/2023
11.8.2023.704-beta0217 337 7/4/2023
11.8.2023.628-beta0652 368 6/28/2023
11.8.2023.624-beta0021 320 6/24/2023
11.8.2023.622-beta0043 124 6/22/2023
11.8.2023.609-beta1406 301 6/9/2023
11.8.2023.606-beta1137 117 6/6/2023
11.8.2023.603-beta0000 130 6/3/2023
11.8.2023.601 1,096 6/1/2023
11.8.2023.531-beta0844 123 5/31/2023
11.8.2023.524-beta1609 134 5/24/2023
11.8.2023.523-beta0001 135 5/23/2023
11.8.2023.511-beta0917 520 5/11/2023
11.8.2023.511-beta0019 134 5/11/2023
11.8.2023.510-beta2335 123 5/10/2023
11.8.2023.508-beta2349 123 5/8/2023
11.8.2023.503 1,041 5/3/2023
11.8.2023.503-beta1619 125 5/3/2023
11.8.2023.503-beta1524 118 5/3/2023
11.8.2023.424-beta1320 135 4/24/2023
11.8.2023.422-beta0205 147 4/22/2023
11.8.2023.412-beta1750 386 4/12/2023
11.8.2023.412-beta1557 136 4/12/2023
11.8.2023.409-beta1501 141 4/9/2023
11.8.2023.408-beta0105 143 4/8/2023
11.8.2023.407-beta0633 130 4/7/2023
11.8.2023.405-beta0133 226 4/5/2023
11.8.2023.401 1,237 4/1/2023
11.8.2023.401-beta1724 132 4/1/2023
11.7.2023.401-beta0000 150 4/1/2023
11.7.2023.328-beta1337 294 3/28/2023
11.7.2023.327-beta1514 147 3/27/2023
11.7.2023.324-beta1635 163 3/24/2023
11.7.2023.322-beta1520 2,094 3/22/2023
11.7.2023.322-beta0402 126 3/22/2023
11.7.2023.318-beta0211 165 3/18/2023
11.7.2023.314-beta0127 152 3/14/2023
11.7.2023.312-beta0127 185 3/12/2023
11.7.2023.311-beta1336 136 3/11/2023
11.6.2023.310-beta1209 147 3/10/2023
11.6.2023.307-beta1032 169 3/7/2023
11.6.2023.302 1,059 3/2/2023
11.6.2023.301 1,247 3/1/2023
11.6.2023.301-beta0118 135 3/1/2023
11.5.2023.228-beta0647 135 2/28/2023
11.5.2023.225-beta0332 137 2/25/2023
11.5.2023.225-beta0126 139 2/25/2023
11.5.2023.221-beta1436 182 2/21/2023
11.5.2023.203 2,029 2/3/2023
11.5.2023.203-beta1432 132 2/3/2023
11.5.2023.203-beta1155 125 2/3/2023
11.5.2023.101 2,456 1/1/2023
11.5.2023.101-beta0220 136 1/1/2023
11.5.2022.1224-beta0551 176 12/24/2022
11.5.2022.1223-beta0407 551 12/23/2022
11.5.2022.1217-beta0141 147 12/17/2022
11.5.2022.1212-beta1503 181 12/12/2022
11.5.2022.1201 1,960 12/1/2022
11.5.2022.1201-beta1211 143 12/1/2022
11.4.2022.1201-beta0631 121 12/1/2022
11.4.2022.1129-beta0048 155 11/29/2022
11.4.2022.1119-beta0026 159 11/19/2022
11.3.2022.1117-beta0827 163 11/17/2022
11.3.2022.1112-beta0001 198 11/12/2022
11.3.2022.1106-beta0411 525 11/6/2022
11.3.2022.1105-beta0227 152 11/5/2022
11.3.2022.901 2,615 9/1/2022
11.3.2022.901-beta0314 137 9/1/2022
11.3.2022.821-beta1520 169 8/21/2022
11.3.2022.816-beta0752 190 8/16/2022
11.3.2022.813-beta1439 496 8/13/2022
11.3.2022.810-beta0602 223 8/10/2022
11.2.2022.807-beta0041 157 8/7/2022
11.2.2022.801 2,183 8/1/2022
11.2.2022.801-beta0137 169 8/1/2022
11.2.2022.801-beta0136 167 8/1/2022
11.2.2022.722-beta0846 171 7/22/2022
11.2.2022.701 2,213 7/1/2022
11.2.2022.701-beta1346 160 7/1/2022
11.2.2022.619-beta0936 216 6/19/2022
11.2.2022.616-beta1140 185 6/16/2022
11.2.2022.609-beta1513 175 6/9/2022
11.2.2022.605-beta1607 528 6/5/2022
11.2.2022.605-beta1403 175 6/5/2022
11.2.2022.604 859 6/4/2022
11.2.2022.529-beta2346 300 5/29/2022
11.1.2022.506-beta1454 163 5/6/2022
11.1.2022.501 2,741 5/1/2022
11.1.2022.501-beta0140 152 5/1/2022
11.0.2022.427-beta1600 201 4/27/2022
11.0.2022.427-beta0359 149 4/27/2022
11.0.2022.425-beta1330 170 4/25/2022
11.0.2022.422-beta1322 241 4/22/2022
11.0.2022.415-beta0458 238 4/15/2022
11.0.2022.408-beta0119 438 4/8/2022
11.0.2022.401 2,344 4/1/2022
11.0.2022.320-beta0630 266 3/20/2022
11.0.2022.216-beta2 331 2/16/2022
11.0.2022.202 1,255 2/2/2022
11.0.2022.116-beta1 278 1/16/2022
11.0.2022.101 1,162 12/31/2021
10.3.2021.1225 1,749 12/25/2021
10.3.2021.1216-beta2 257 12/16/2021
10.3.2021.1216-beta1 218 12/16/2021
10.3.2021.1204 2,399 12/4/2021
10.3.2021.1130-beta2 273 11/30/2021
10.3.2021.1124-beta1 3,783 11/25/2021
10.3.2021.1109 1,816 11/9/2021
10.3.2021.1030-beta3 358 10/30/2021
10.3.2021.1020-beta2 325 10/20/2021
10.3.2021.1017-beta1 256 10/17/2021
10.2.2021.1001 2,103 10/1/2021
10.2.2021.923-beta1 270 9/23/2021
10.2.2021.904 1,258 9/4/2021
10.2.2021.826-beta2 317 8/25/2021
10.2.2021.809 1,296 8/9/2021
10.2.2021.723-beta1 446 7/22/2021
10.2.2021.708 927 7/8/2021
10.2.2021.618-beta1 283 6/22/2021
10.2.2021.604 1,457 6/7/2021
10.1.2021.525-beta5 279 5/27/2021
10.1.2021.519-beta5 406 5/19/2021
10.1.2021.511-beta3 328 5/11/2021
10.1.2021.505 2,029 5/5/2021
10.1.2021.427-beta3 470 4/27/2021
10.1.2021.420-beta2 345 4/20/2021
10.1.2021.418-beta1 471 4/18/2021
10.1.2021.404 1,462 4/4/2021
10.1.2021.329-rc2 333 3/29/2021
10.1.2021.327-rc1 442 3/27/2021
10.1.2021.320-beta3 317 3/22/2021
10.1.2021.316-beta2 375 3/16/2021
10.1.2021.316-beta1 331 3/16/2021
10.1.2021.310-beta1 308 3/9/2021
10.0.2021.303 1,845 3/3/2021
10.0.2021.224-beta3 430 2/23/2021
10.0.2021.212-beta1 607 2/12/2021
10.0.2021.202 1,626 2/2/2021
10.0.2021.125-beta3 407 1/25/2021
10.0.2021.123-beta3 410 1/23/2021
10.0.2021.120-beta2 348 1/20/2021
10.0.2021.115-beta1 456 1/15/2021
10.0.2021.101 1,408 1/1/2021
10.0.2020.1223-beta2 429 12/23/2020
10.0.2020.1204 1,584 12/4/2020
10.0.2020.1101 1,388 11/1/2020
10.0.2020.1002 1,557 10/2/2020
10.0.2020.930-rc4 409 9/30/2020
10.0.2020.930-rc3 431 9/29/2020
10.0.2020.927-rc2 580 9/26/2020
9.20.2020.922-rc1 458 9/22/2020
9.20.2020.918-beta3 493 9/18/2020
9.20.2020.914-beta2 569 9/14/2020
9.20.2020.912-beta 576 9/12/2020
9.20.2020.901 1,832 9/1/2020
9.19.2020.825-beta8 497 8/24/2020
9.19.2020.802 2,020 8/2/2020
9.18.2020.727-rc3 453 7/27/2020
9.18.2020.725-rc 529 7/25/2020
9.18.2020.719-beta 544 7/18/2020
9.18.2020.701 1,136 7/1/2020
9.18.2020.622-beta 442 6/21/2020
9.17.2020.601 1,345 5/31/2020
9.17.2020.525-rc 569 5/25/2020
9.17.2020.510-beta 449 5/10/2020
9.17.2020.501 1,513 5/1/2020
9.16.2020.425-beta 738 4/25/2020
9.16.2020.421-beta 461 4/21/2020
9.16.2020.403 1,472 4/2/2020
9.16.2020.329-beta 541 3/29/2020
9.16.2020.322-beta 591 3/22/2020
9.16.2020.308 1,560 3/8/2020
9.15.2020.305-rc 524 3/5/2020
9.15.2020.227-cbeta 509 2/27/2020
9.15.2020.219-beta 661 2/19/2020
9.15.2020.217-beta 629 2/17/2020
9.15.2020.204 2,019 2/4/2020
9.14.2020.101 1,407 1/1/2020
9.14.2019.1212 1,697 12/12/2019
9.14.2019.1203 1,202 12/3/2019
9.14.2019.1109 2,193 11/9/2019
9.14.2019.923 1,191 9/24/2019
9.14.2019.822 1,300 8/22/2019
9.13.2019.706 1,614 7/6/2019
9.12.2019.618 1,168 6/23/2019
9.11.2019.602 1,787 6/2/2019
9.11.2019.510 1,049 5/10/2019
9.11.2019.415 1,532 4/15/2019
9.11.2019.406 1,161 4/6/2019
9.11.2019.327 1,105 3/26/2019
9.11.2019.324 873 3/24/2019
9.11.2019.320 891 3/20/2019
9.11.2019.314 1,072 3/14/2019
9.11.2019.311 1,516 3/10/2019
9.10.6965.42078 1,121 1/26/2019
9.10.6940.24648 1,352 1/1/2019
9.9.6911.41890 1,239 12/3/2018
9.9.6881.41312 2,009 11/3/2018
9.9.6870.42458 1,489 10/23/2018
9.9.6839.35285 1,123 9/22/2018
9.9.6815.39385 1,073 8/29/2018
9.9.6806.38809 1,172 8/20/2018
9.9.6804.36942 1,629 8/18/2018
9.8.6790.27913 1,466 8/4/2018
9.8.6763.36551 1,803 7/8/2018
9.8.6755.22252 1,636 6/30/2018
9.7.6722.39741 1,657 5/28/2018
9.6.6678.32715 2,363 4/14/2018
9.6.6644.19804 1,716 3/13/2018
9.6.6631.1418 1,805 2/25/2018
9.6.6576.132 2,175 1/1/2018
9.6.6542.34608 2,146 11/29/2017
9.6.6504.184 1,981 10/21/2017
9.6.6456.33157 1,933 9/4/2017
9.6.6441.4900 1,383 8/19/2017
9.5.6412.41697 2,120 7/22/2017
9.5.6373.296 1,404 6/12/2017
9.4.6362.19954 1,812 6/2/2017
9.4.6354.28216 1,541 5/25/2017
9.4.6295.19987 1,505 3/27/2017
9.2.6212.2087 2,253 1/2/2017
9.1.6173.29485 1,502 11/25/2016
9.1.6157.20380 1,421 11/9/2016
9.1.6136.28588 1,392 10/19/2016
9.0.6073.30845 1,490 8/17/2016
9.0.6055.30543 1,431 8/9/2016
9.0.5970.32144 2,080 5/6/2016
9.0.5941.32093 1,288 4/7/2016
8.21.5935.36186 1,644 4/1/2016
8.21.5907.30308 1,839 3/4/2016
8.21.5904.30429 1,755 3/1/2016
8.21.5887.40343 1,769 2/13/2016
8.21.5874.34033 2,044 2/4/2016
8.20.5786.32623 1,301 11/4/2015
8.20.5749.18133 1,874 9/28/2015
8.20.5701.19741 1,526 8/11/2015
8.18.5624.26027 2,109 5/27/2015
8.18.5615.3064 1,489 5/16/2015
8.18.5615.2933 1,946 5/16/2015
8.18.5606.36186 1,768 5/8/2015
8.17.5586.37396 2,098 4/18/2015
8.17.5583.27032 1,282 4/15/2015
8.17.5577.38179 1,442 4/9/2015
8.16.5571.6262 2,122 4/2/2015
8.16.5571.4984 1,508 4/2/2015
8.9.5038.20106 1,865 2/13/2016

改进pg支持,改进代码生成器