本文说明 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();
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);
});
});
ILoggerFactory:用于常规 Service 调用日志。options.LoggerFactory:主要用于框架注册和程序集扫描阶段的输出。详细用法参见:日志与诊断
[Table(DataSource = "...")] 绑定数据源。ReadOnlyConfigs 配置只读副本。SqlBuilder。Provider 应该填写什么?填写数据库连接对象的完整类型名,例如 System.Data.SqlClient.SqlConnection, System.Data.SqlClient。
SqlBuilder?当数据库版本较老、分页语法或函数行为与默认实现不一致时,需要自定义 SqlBuilder。