LiteOrm在线文档

配置与注册

本文说明 LiteOrm 的基础配置结构、常用配置项和启动注册方式。

appsettings.json 示例

{
  "LiteOrm": {
    "Default": "DefaultConnection",
    "DataSources": [
      {
        "Name": "DefaultConnection",
        "ConnectionString": "Server=localhost;Database=TestDb;User Id=root;Password=123456;",
        "Provider": "MySqlConnector.MySqlConnection, MySqlConnector",
        "SqlBuilder": null,
        "KeepAliveDuration": "00:10:00",
        "PoolSize": 16,
        "MaxPoolSize": 100,
        "ParamCountLimit": 2000,
        "SyncTable": false,
        "ReadOnlyConfigs": []
      }
    ]
  }
}

配置项说明

配置项 说明
Default 默认数据源名称。
DataSources[].Name 数据源标识,可被 [Table(DataSource = ...)] 引用。
DataSources[].ConnectionString 数据库连接字符串。
DataSources[].Provider 连接类型全名,格式为 TypeName, AssemblyName
DataSources[].SqlBuilder 可选,自定义方言构建器。
DataSources[].KeepAliveDuration 连接保活时长。
DataSources[].PoolSize 连接池缓存的最大连接数。
DataSources[].MaxPoolSize 最大并发连接数上限。
DataSources[].ParamCountLimit 单条 SQL 参数数量限制。
DataSources[].SyncTable 是否自动同步建表。
DataSources[].ReadOnlyConfigs 只读库配置,用于读写分离。

注册方式

控制台应用

var host = Host.CreateDefaultBuilder(args)
    .RegisterLiteOrm()
    .Build();

ASP.NET Core 应用

var builder = WebApplication.CreateBuilder(args);
builder.Host.RegisterLiteOrm();

带选项注册

builder.Host.RegisterLiteOrm(options =>
{
    options.RegisterScope = true;
    options.Assemblies = new[] { typeof(MyService).Assembly };
    options.RegisterSqlBuilder("DefaultConnection", new MySqlBuilder());
});

日志集成

LiteOrm 的运行日志接入 Microsoft.Extensions.Logging。服务调用日志、异常日志和慢查询日志会跟随宿主应用的日志提供程序一起输出。

宿主日志配置示例

var builder = WebApplication.CreateBuilder(args);

builder.Logging.ClearProviders();
builder.Logging.AddConsole();

builder.Host.RegisterLiteOrm();

options.LoggerFactory 的作用

builder.Host.RegisterLiteOrm(options =>
{
    options.LoggerFactory = LoggerFactory.Create(logging =>
    {
        logging.AddConsole();
        logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Information);
    });
});

详细用法参见:日志与诊断

多数据源与读写分离建议

常见问题

Provider 应该填写什么?

填写数据库连接对象的完整类型名,例如 System.Data.SqlClient.SqlConnection, System.Data.SqlClient

什么时候需要自定义 SqlBuilder

当数据库版本较老、分页语法或函数行为与默认实现不一致时,需要自定义 SqlBuilder

相关链接