JCode.ORMX 1.0.3

dotnet add package JCode.ORMX --version 1.0.3
                    
NuGet\Install-Package JCode.ORMX -Version 1.0.3
                    
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="JCode.ORMX" Version="1.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="JCode.ORMX" Version="1.0.3" />
                    
Directory.Packages.props
<PackageReference Include="JCode.ORMX" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add JCode.ORMX --version 1.0.3
                    
#r "nuget: JCode.ORMX, 1.0.3"
                    
#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.
#:package JCode.ORMX@1.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=JCode.ORMX&version=1.0.3
                    
Install as a Cake Addin
#tool nuget:?package=JCode.ORMX&version=1.0.3
                    
Install as a Cake Tool

JCode.ORMX

JCode.ORMX 是一个轻量级、高性能的 .NET ORM 框架,支持多种数据库,包括关系型数据库(SQL Server、MySQL、PostgreSQL、SQLite)和 NoSQL 数据库(MongoDB)。它提供了简洁的 API,使数据库操作变得简单而强大。

功能特性

  • 多数据库支持:支持关系型数据库(SQL Server、MySQL、PostgreSQL、SQLite)和 NoSQL 数据库(MongoDB)
  • 分布式数据库支持:内置分片策略,支持分布式数据库操作
  • 缓存支持:内置分布式缓存机制,提高查询性能
  • 链式 API:提供流畅的链式调用接口,代码更易读
  • 表达式树支持:使用 LINQ 表达式树进行类型安全的查询
  • 事务支持:支持数据库事务操作
  • 聚合函数:支持 COUNT、SUM、AVG、MAX、MIN 等聚合函数
  • 分组查询:支持 GROUP BY 和 HAVING 子句
  • 连接查询:支持 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN
  • 窗口函数:支持 ROW_NUMBER、RANK、DENSE_RANK、NTILE、LAG、LEAD 等窗口函数
  • 分页查询:内置分页支持
  • 调试功能:支持 SQL 调试,方便查看生成的 SQL 语句

安装

NuGet 包

Install-Package JCode.ORMX

数据库提供程序包

根据您使用的数据库,安装相应的提供程序包:

# SQL Server
Install-Package JCode.ORMX.DbProvider.SQLServer

# MySQL
Install-Package JCode.ORMX.DbProvider.MySQL

# PostgreSQL
Install-Package JCode.ORMX.DbProvider.PostgreSQL

# SQLite
Install-Package JCode.ORMX.DbProvider.SQLite

# MongoDB
Install-Package JCode.ORMX.DbProvider.MongoDB

快速开始

1. 定义实体类

[Table("Users")]
public class User
{
    [Column(IsPrimaryKey = true, IsIdentity = true)]
    public int Id { get; set; }

    [Column]
    public string Name { get; set; }

    [Column]
    public string Email { get; set; }

    [Column]
    public DateTime CreatedAt { get; set; }
}

2. 初始化数据库提供程序

// SQL Server
var provider = new SQLServerProvider("Server=localhost;Database=MyDb;User Id=sa;Password=your_password;");

// MySQL
var provider = new MySQLProvider("Server=localhost;Database=MyDb;User=root;Password=your_password;");

// PostgreSQL
var provider = new PostgreSQLProvider("Host=localhost;Database=MyDb;Username=postgres;Password=your_password;");

// SQLite
var provider = new SQLiteProvider("Data Source=mydb.db;");

// MongoDB
var provider = new MongoDbProvider("mongodb://localhost:27017/MyDb");

3. 创建表

var tableManager = provider.GetTableManager();
tableManager.Create(typeof(User));

4. 基本操作

var table = tableManager.Table<User>();

// 插入
var user = new User { Name = "John", Email = "john@example.com", CreatedAt = DateTime.Now };
table.Insert(user);

// 查询
var users = table.Find()
    .Where(u => u.Name == "John")
    .OrderBy(u => u.Id)
    .Limit(10)
    .GetList();

// 更新
table.Update()
    .Set("Email", "newemail@example.com")
    .Where(u => u.Id == 1)
    .Execute();

// 删除
table.Delete()
    .Where(u => u.Id == 1)
    .Execute();

高级功能

分布式数据库

// 创建分布式数据库提供程序
var distributedProvider = new DistributedDbProvider();

// 添加分片
distributedProvider.AddProvider("shard1", provider1);
distributedProvider.AddProvider("shard2", provider2);

// 配置分片策略
distributedProvider.SetShardingStrategy(new UserIdShardingStrategy());

// 使用分布式表
var table = distributedProvider.GetTableManager().Table<User>();
var users = table.Find().GetList();

聚合查询

var result = table.Aggregate()
    .GroupBy("Department")
    .Count("EmployeeCount", "Id")
    .Avg("AvgSalary", "Salary")
    .GetList();

连接查询

var result = table.Find()
    .InnerJoin<Order>((u, o) => u.Id == o.UserId)
    .Where(u => u.Name == "John")
    .GetList();

窗口函数

var result = table.Find()
    .WindowFunction()
    .RowNumber("RowNum", u => u.Salary)
    .OrderByDesc(u => u.RowNum)
    .GetList();

性能优化

缓存

// 创建带缓存的提供程序
var cachedProvider = new CachedDistributedDbProvider(
    distributedProvider,
    new MemoryDistributedCache(TimeSpan.FromMinutes(5))
);

批量操作

// 批量插入
var users = new List<User> { /* ... */ };
table.InsertAll(users);

// 批量更新
table.UpdateAll(users);

// 批量删除
table.DeleteAll(users);
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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.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 was computed. 
.NET Framework net461 was computed.  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 (7)

Showing the top 5 NuGet packages that depend on JCode.ORMX:

Package Downloads
JCode.ORMX.DbProvider.MySQL

MySQL database provider for ORMX - Object Relational Mapping Extended for .NET. ORMX 的 MySQL 数据库提供程序 - .NET 对象关系映射扩展框架

JCode.ORMX.DbProvider.SQLServer

SQL Server database provider for ORMX - Object Relational Mapping Extended for .NET. ORMX 的 SQL Server 数据库提供程序 - .NET 对象关系映射扩展框架

JCode.ORMX.DbProvider.PostgreSQL

PostgreSQL database provider for ORMX - Object Relational Mapping Extended for .NET. ORMX 的 PostgreSQL 数据库提供程序 - .NET 对象关系映射扩展框架

JCode.ORMX.DbProvider.SQLite

SQLite database provider for ORMX - Object Relational Mapping Extended for .NET. ORMX 的 SQLite 数据库提供程序 - .NET 对象关系映射扩展框架

JCode.ORMX.DbProvider.MongoDB

MongoDB provider for ORMX - Object Relational Mapping Extended for .NET MongoDB 提供程序,用于 ORMX - .NET 的对象关系映射扩展

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.3 135 2/10/2026
1.0.2 62 2/8/2026
1.0.1 236 2/7/2026
1.0.0 225 2/6/2026