EaCloud Sqlite 数据库组件

说明
- EaCloud Sqlite 数据库组件,封装基于 Microsoft.EntityFrameworkCore.Sqlite 的数据访问功能的实现。
- 支持 SQLite 3.7 及以上版本。
用法
可按照如下配置方式使用:
- 通过nuget引用
EaCloud.EntityFrameworkCore.Sqlite 程序集
Install-Package EaCloud.EntityFrameworkCore.Sqlite
- 在
appsettings.json 中的 EaCloud 节点下添加如下配置节点
{
//数据库上下文集合
"DbContexts": {
//默认数据库上下文
"DefaultDbContext": {
"DbContextTypeName": "EaCloud.Entity.DefaultDbContext,EaCloud.EntityFrameworkCore", //上下文类型全名(默认数据库上下文)
"DatabaseType": "Sqlite", //数据库类型:"Cosmos"(Azure Cosmos DB 的 SQL API)、"Kdbndp"(人大金仓)、"MySql"、"Oracle"、"PostgreSql"、"Sqlite"、"SqlServer"
"ConnectionString": "data source=EaCloud_DEV.db", //连接字符串(Sqlite)
//从数据库配置
"SlaveDatabase": {
"SlaveSelector": "Weight", //从数据库选择策略:Weight(平滑权重)、Random(随机)、Sequence(顺序轮询)
//从数据库集合
"SlaveDatabases": [
{
"Name": "Slave01", //数据库名
"Weight": 2, //权重(1-100)
"ConnectionString": "data source=EaCloud_DEV.Slave01.db", //连接字符串(Sqlite)
},
{
"Name": "Slave02", //数据库名
"Weight": 5, //权重(1-100)
"ConnectionString": "data source=EaCloud_DEV.Slave02.db", //连接字符串(Sqlite)
}
]
},
"CommandTimeout": 120, //命令执行超时时长(秒)
"IsolationLevel": null, //事务隔离级别:"Unspecified"、"Chaos"、"ReadUncommitted"、"ReadCommitted"、"RepeatableRead"、"Serializable"、"Snapshot"
"Compatibility": false, //启用兼容:开启后将使用旧版行为执行数据库操作已达到可使用较低版本数据库的目的。注:开启后不会使用更高效的SQL生成逻辑,可能会削弱性能。
"LazyLoadingProxiesEnabled": false, //是否启用延迟加载代理
"DateTimeUtcFormatEnabled": false, //是否启用时间UTC格式
"EntityAuditEnabled": true, //是否启用数据审计
"EntityEventEnabled": true, //是否启用数据事件
"MigrationAssemblyName": "[Your Migration Assembly Name]", //迁移的程序集名称(为空时默认"DesignTime[Your Name]DbContextFactory"所在程序集),PS:Cosmos暂不支持
"MigrationEnabled": true //启用自动迁移,PS:Cosmos暂不支持
}
},
}
交流