Skip to content

API 参考概览 ​

SmartSql 是一个面向 netstandard2.0(C# 7.3)的 .NET ORM 库,提供 XML 管理的 SQL 语句、读写分离、缓存、动态仓库代理和基于中间件的执行管道。版本 4.1.68 以 Apache-2.0 许可证发布。

本节记录了所有 SmartSql 包的公共 API 面。

一览 ​

方面详情
目标框架netstandard2.0
语言版本C# 7.3
许可证Apache-2.0
当前版本4.1.68
作者Ahoo Wang
仓库dotnetcore/SmartSql

包依赖图 ​

mermaid
graph TD
    subgraph core["Core"]
        style core fill:#161b22,stroke:#30363d,color:#e6edf3
        SmartSql["SmartSql<br>Core ORM Library"]
    end
    subgraph extensions["Extension Packages"]
        style extensions fill:#161b22,stroke:#30363d,color:#e6edf3
        DI["SmartSql.DIExtension"]
        DyRepo["SmartSql.DyRepository"]
        Options["SmartSql.Options"]
        AOP["SmartSql.AOP"]
        Extensions["SmartSql.Extensions"]
        ScriptTag["SmartSql.ScriptTag"]
    end
    subgraph caching["Caching Packages"]
        style caching fill:#161b22,stroke:#30363d,color:#e6edf3
        CacheRedis["SmartSql.Cache.Redis"]
        CacheSync["SmartSql.Cache.Sync"]
        DistCache["SmartSql.DistributedCache"]
    end
    subgraph bulk["Bulk Insert Packages"]
        style bulk fill:#161b22,stroke:#30363d,color:#e6edf3
        BulkBase["SmartSql.Bulk"]
        BulkSQL["SmartSql.Bulk.SqlServer"]
        BulkMSSQL["SmartSql.Bulk.MsSqlServer"]
        BulkMy["SmartSql.Bulk.MySql"]
        BulkMyConn["SmartSql.Bulk.MySqlConnector"]
        BulkPG["SmartSql.Bulk.PostgreSql"]
    end
    subgraph sync["Sync Packages"]
        style sync fill:#161b22,stroke:#30363d,color:#e6edf3
        InvokeSync["SmartSql.InvokeSync"]
        SyncKafka["SmartSql.InvokeSync.Kafka"]
        SyncRMQ["SmartSql.InvokeSync.RabbitMQ"]
    end
    subgraph providers["Database Providers"]
        style providers fill:#161b22,stroke:#30363d,color:#e6edf3
        Oracle["SmartSql.Oracle"]
        TypeHandler["SmartSql.TypeHandler"]
        TypeHandlerPG["SmartSql.TypeHandler.PostgreSql"]
    end

    SmartSql --> DI
    SmartSql --> DyRepo
    SmartSql --> Options
    SmartSql --> AOP
    SmartSql --> Extensions
    SmartSql --> ScriptTag
    SmartSql --> CacheRedis
    SmartSql --> CacheSync
    SmartSql --> DistCache
    BulkBase --> BulkSQL
    BulkBase --> BulkMSSQL
    BulkBase --> BulkMy
    BulkBase --> BulkMyConn
    BulkBase --> BulkPG
    SmartSql --> BulkBase
    SmartSql --> InvokeSync
    InvokeSync --> SyncKafka
    InvokeSync --> SyncRMQ
    SmartSql --> Oracle
    SmartSql --> TypeHandler
    SmartSql --> TypeHandlerPG

NuGet 包 ​

核心 ​

包描述
SmartSql核心 ORM 库,包含中间件管道、XML SQL 管理和 ISqlMapper

扩展 ​

包描述
SmartSql.DIExtensionASP.NET Core 依赖注入集成(AddSmartSql())
SmartSql.DyRepository通过 IL emit 动态生成仓库代理
SmartSql.Options用于 appsettings.json 的 Options 模式配置构建器
SmartSql.AOP使用 [Transaction] 特性的 AOP 事务支持
SmartSql.Extensions通用扩展
SmartSql.ScriptTag动态 SQL 的脚本标签支持
SmartSql.DataConnector数据连接器服务

缓存 ​

包描述
SmartSql.Cache.Redis基于 Redis 的分布式缓存提供程序
SmartSql.Cache.Sync跨实例缓存同步
SmartSql.DistributedCache分布式缓存抽象

批量插入 ​

包描述
SmartSql.Bulk基础批量插入抽象
SmartSql.Bulk.SqlServerSQL Server 批量插入
SmartSql.Bulk.MsSqlServerMS SQL Server 批量插入
SmartSql.Bulk.MySqlMySQL 批量插入
SmartSql.Bulk.MySqlConnectorMySQL(MySqlConnector 驱动)批量插入
SmartSql.Bulk.PostgreSqlPostgreSQL 批量插入

同步 ​

包描述
SmartSql.InvokeSync通过消息队列进行数据同步
SmartSql.InvokeSync.Kafka基于 Kafka 的同步传输
SmartSql.InvokeSync.RabbitMQ基于 RabbitMQ 的同步传输

数据库提供程序 ​

包描述
SmartSql.OracleOracle 数据库提供程序
SmartSql.TypeHandlerJSON 和自定义类型处理器
SmartSql.TypeHandler.PostgreSqlPostgreSQL 专用类型处理器

主要入口点 ​

SmartSql 暴露了三个主要接口,构成公共 API 面:

mermaid
graph TD
    subgraph entrypoints["Main Entry Points"]
        style entrypoints fill:#161b22,stroke:#30363d,color:#e6edf3
        ISqlMapper["ISqlMapper<br>Data access operations"]
        IDbSessionFactory["IDbSessionFactory<br>Session creation"]
        IDbSession["IDbSession<br>Low-level command execution"]
    end
    subgraph support["Supporting Types"]
        style support fill:#161b22,stroke:#30363d,color:#e6edf3
        SmartSqlBuilder["SmartSqlBuilder<br>Fluent configuration"]
        SmartSqlConfig["SmartSqlConfig<br>Runtime configuration"]
        ITransaction["ITransaction<br>Transaction management"]
        IDbSessionStore["IDbSessionStore<br>Session lifecycle"]
    end

    SmartSqlBuilder -->|".Build()"| ISqlMapper
    SmartSqlBuilder -->|".Build()"| IDbSessionFactory
    IDbSessionFactory -->|"Open()"| IDbSession
    ISqlMapper --> IDbSessionStore
    IDbSessionStore -->|"Open()"| IDbSession
    ISqlMapper -.->|extends| ITransaction
    IDbSession -.->|extends| ITransaction
    SmartSqlBuilder --> SmartSqlConfig

ISqlMapper ​

主要的数据访问接口。提供同步和异步方法用于执行 SQL 语句、查询和获取结果。它会自动管理每个操作的会话生命周期(打开/关闭)。完整的方法列表请参阅核心接口。

csharp
// Typical usage
var list = sqlMapper.Query<User>(new RequestContext { FullSqlId = "User.Query" });
var count = await sqlMapper.ExecuteAsync(new RequestContext { FullSqlId = "User.Delete", Request = new { Id = 1 } });

IDbSessionFactory ​

创建 IDbSession 实例,用于更底层的控制。当你需要显式的会话管理或自定义数据源路由时非常有用。

csharp
var session = sessionFactory.Open();
var result = session.Query<User>(requestContext);

IDbSession ​

最底层的接口。提供对 DbConnection、DbTransaction 和原始命令执行的直接访问。暴露事件(Opened、Committed、Rollbacked、Disposed)用于生命周期钩子。

SmartSqlBuilder ​

构建整个运行时的流式入口。所有配置在调用 Build() 之前都流经 SmartSqlBuilder。完整的流式 API 请参阅配置 API。

mermaid
sequenceDiagram
autonumber
    participant App as Application
    participant Builder as SmartSqlBuilder
    participant Config as SmartSqlConfig
    participant Container as SmartSqlContainer

    App->>Builder: UseXmlConfig() or UseDataSource()
    App->>Builder: UseCache()
    App->>Builder: RegisterEntity()
    App->>Builder: AddMiddleware()
    App->>Builder: Build()
    Builder->>Config: Create SmartSqlConfig
    Builder->>Config: Build middleware pipeline
    Builder->>Config: Initialize filters, type handlers
    Builder->>Container: Register(builder)
    Builder-->>App: ISqlMapper, IDbSessionFactory

交叉引用 ​

  • 核心接口 -- ISqlMapper、IDbSession、IDbSessionFactory 的完整文档
  • 配置 API -- SmartSqlBuilder 流式 API 和 SmartSqlConfig
  • 中间件 API -- 中间件管道、自定义中间件、过滤器

参考资料 ​

来源描述
src/SmartSql/ISqlMapper.csISqlMapper 接口定义
src/SmartSql/SqlMapper.csSqlMapper 实现
src/SmartSql/SmartSqlBuilder.cs流式构建器
src/SmartSql/Configuration/SmartSqlConfig.cs中央配置
src/SmartSql/DbSession/IDbSession.cs会话接口
src/SmartSql/DbSession/IDbSessionFactory.cs会话工厂接口
Directory.Build.props共享构建属性

基于 MIT 许可证发布。