高性能 .NET LINQ-to-SQL ORM 框架,支持 MySQL、SQL Server、PostgreSQL 多数据库引擎,提供类型安全的查询构建、仓储模式、事务管理和批量操作能力。
# 核心库(必选)
dotnet add package Inkslab.Linq
# 数据库适配器(选其一或多个)
dotnet add package Inkslab.Linq.MySql
dotnet add package Inkslab.Linq.SqlServer
dotnet add package Inkslab.Linq.PostgreSQL
# 事务管理(可选)
dotnet add package Inkslab.Transactionsusing Microsoft.Extensions.DependencyInjection;
// MySQL
services.UseMySql()
.UseLinq("server=localhost;uid=root;pwd=password;database=mydb;Charset=utf8mb4;");
// SQL Server
services.UseSqlServer()
.UseLinq("Server=localhost;Database=MyDB;Trusted_Connection=true;");
// PostgreSQL
services.UsePostgreSQL()
.UseLinq("Host=localhost;Database=mydb;Username=postgres;Password=password;");注册完成后,通过依赖注入获取以下服务:
| 服务类型 | 说明 |
|---|---|
IQueryable<TEntity> |
LINQ 查询入口 |
IRepository<TEntity> |
仓储操作(增删改) |
IDatabase |
原生 SQL 执行 |
IDatabaseFactory |
动态创建数据库实例 |
inkslab.linq.sln
├── src/
│ ├── Inkslab.Linq/ # 核心抽象层与 LINQ-to-SQL 翻译引擎
│ ├── Inkslab.Linq.MySql/ # MySQL 适配器(MySqlConnector)
│ ├── Inkslab.Linq.SqlServer/ # SQL Server 适配器(Microsoft.Data.SqlClient)
│ ├── Inkslab.Linq.PostgreSQL/ # PostgreSQL 适配器(Npgsql)
│ └── Inkslab.Transactions/ # 事务管理(TransactionUnit)
└── tests/
├── Inkslab.Linq.Tests/ # 核心测试(MySQL)
├── SqlServer.Tests/ # SQL Server 测试
├── PostgreSQL.Tests/ # PostgreSQL 测试
└── Combination.Tests/ # 多数据库组合测试
IQueryable<T> ──→ QueryProvider ──→ LINQ Expression Tree ──→ SQL
│
IRepository<T> ──→ RepositoryExecutor ──→ IDbAdapter ─────────┤
│ │
IDatabase<T> ──→ DatabaseExecutor ────────────┘ │
│ ▼
IDbConnectionPipeline ──→ DbConnection ──→ 数据库
public enum DatabaseEngine
{
SQLite = 1, MySQL = 2, SqlServer = 3, PostgreSQL = 4,
Oracle = 5, DB2 = 6, Sybase = 7
}完整使用文档按模块拆分如下,按需查阅:
| 模块 | 内容 |
|---|---|
| 实体与映射 | 实体注解、[Version] 规则、列值类型映射、分片表定义、Fluent API |
| LINQ 查询 | 基础/Join/子查询/分组/Union、异步方法、字符串与日期函数、IQueryable 扩展 |
| 仓储操作 | 插入与 PopulateIdentity 反写、更新、删除、仓储方法链 |
| 动态条件与排序 | Conditions、WhereIf、Expression 组合、Ranks 动态排序 |
| 原生 SQL 与 IDatabase | 查询/执行/多结果集/存储过程/ExecuteMultiple/DynamicParameter |
| 事务与连接复用 | TransactionUnit 事务、SerializableScope、批量操作 |
| 高级特性 | JSON/JSONB、分片表、多数据库配置、LinqAnalyzer |
| LINQ 编写规则与禁令清单 | LINQ → SQL 翻译的严格校验规则(AI 编码依据) |
| API 速查表 | 接口继承链、IDatabase 方法、CommandSql、异常体系、测试与构建 |
完整异常清单(含源码位置与原文)见
docs/LINQ与命令翻译报错规则.md。
MIT License - Copyright (c) 2023 Yuanli He