返回作品列表
ALinq
完整实现 LINQ to SQL,把 ORM 带到更多数据库
完整实现 Linq to SQL 的功能与 API,并扩展到 8 种主流数据库的 .NET ORM,配套实体设计器与动态查询、AOP 扩展。
时间
2011
我的角色
独立设计与长期维护
技术栈
C# · LINQ to SQL · ORM · Visual Studio 插件
8 种
支持的数据库
36
GitHub stars
26
GitHub forks
背景
Linq to SQL 只面向 SQL Server,而项目里要接的是 Access、SQLite、MySQL、Oracle 等各种数据库。ALinq 的目标很直接:完整实现 Linq to SQL 的全部功能和 API,让已有的知识与代码可以平滑迁移,再补上更多数据库的支持。
博客园博客的标题就是它的介绍语:「最为完美的 LINQ TO DB 解决方案,移植 LINQ TO SQL 的利器」。
做了什么
支持 Access、SQLite、MS SQL Server、MySQL、Oracle、Firebird、PostgreSQL、DB2,并在 Linq to SQL 的基础上改进了批量增删改等能力。
围绕 ORM 做了一整套配套工具与扩展,而不只是一个查询层。
- Visual Entity:支持 NHibernate 与 Linq to SQL 的免费实体设计器,2011 年发布,2.0 支持 Visual Studio 2013
- ALinq Dynamic:把 Entity SQL 解释为 Linq 表达式,为 ALinq / Linq to SQL 提供动态查询接口
- ALinq Inject:对增删改与验证方法做 AOP 注入,用于数据校验、操作日志等场景
- ORDesigner 代码生成器、Xml 映射文件、存储过程与函数映射
留下了什么
ALinq 维护了近五年,2013 年做过一次大重构,并把过程写成《记我的一次重构》;《深入了解 LINQ to SQL》《LINQ TO ORACLE 使用教程》《ALinq Dynamic 使用指南》等系列教程至今仍挂在博客园。
GitHub 上的 ALinq 仓库现有 36 stars / 26 forks;2026 年又新建了 alinq.js 仓库。