Skip to content

Latest commit

 

History

168 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inkslab.Linq

高性能 .NET LINQ-to-SQL ORM 框架,支持 MySQL、SQL Server、PostgreSQL 多数据库引擎,提供类型安全的查询构建、仓储模式、事务管理和批量操作能力。

License: MIT Version .NET GitHub Issues


目录


快速开始

安装 NuGet 包

# 核心库(必选)
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.Transactions

注册服务

using 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

About

一套轻量级微服务ORM框架,包含T-SQL和Linq表达式分析并支持事务范围和自定义事务单元。

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages