BitzOrcas 使用基于 CSV 的种子数据用于生产初始化和测试夹具。相同的 CsvSeedStepBase<T> 框架同时支持两者。
种子数据位置
src/BuildingBlocks/BitzOrcas.Infrastructure.SqlSugar/Seeders/Assets/├── Identity/ → platform_tenant.csv, sys_role.csv 等└── MasterData/ → sys_country.csv, sys_language.csv 等测试数据库设置
集成测试使用以下步骤初始化测试数据库:
--init-schema标志通过 SqlSugar CodeFirst 创建表--seed-demo通过ISeedRunner加载 CSV 种子数据- 测试基于已种子的数据运行
CsvSeedReader
public class CsvSeedReader{ // 读取 CSV,通过头部映射到实体属性 public List<T> Read<T>(Stream csvStream) where T : class;}CsvSeedStepBase
public abstract class CsvSeedStepBase<T> : ISeedStep where T : class, new(){ // 读取 CSV → 映射到实体 → 通过 SqlSugar Storageable upsert public override async Task ExecuteAsync(...) { var records = reader.Read<T>(csvStream); await db.Storageable(records).ExecuteCommandAsync(); }}添加测试夹具
- 在
Seeders/Assets/添加 CSV 文件(或嵌入为资源) - 创建继承
CsvSeedStepBase<T>的种子步骤 - 在测试设置中注册