# Changelog

## Score

- CAI 39 → 46 (+6.9)
- Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.

## Lenses

- Code Health 47 → 46 (-0.6)
- Architecture 81 → 81 (+0.5)
- Maturity 45 → 57 (+12.4)
- Readiness 30 → 39 (+9.7)
- Security 42 → 42 (+0.2)
- Domain Modelling 95 (new)

## Resolved (128)

- Banned license: MySql.Data
- BaseRepository.Add (cognitive 18) (src/Sean.Core.DbRepository/Repository/BaseRepository.cs)
- BaseRepository.Add (cyclomatic 17) (src/Sean.Core.DbRepository/Repository/BaseRepository.cs)
- BaseRepository.AddAsync (cognitive 18) (src/Sean.Core.DbRepository/Repository/BaseRepository.cs)
- BaseRepository.AddAsync (cyclomatic 17) (src/Sean.Core.DbRepository/Repository/BaseRepository.cs)
- Bounded contexts not declared
- Build did not complete in the analyzer
- CRAP 199: QueryableSqlBuilder.BuildSqlCommand (src/Sean.Core.DbRepository/SqlBuilder/QueryableSqlBuilder.cs)
- CRAP 235: DatabaseTypeExtensions.GetSqlForTableExists (src/Sean.Core.DbRepository/Extensions/DatabaseTypeExtensions.cs)
- CRAP 235: DatabaseTypeExtensions.GetSqlForTableFieldExists (src/Sean.Core.DbRepository/Extensions/DatabaseTypeExtensions.cs)
- CRAP 309: DatabaseTypeExtensions.MarkAsIdentifier (src/Sean.Core.DbRepository/Extensions/DatabaseTypeExtensions.cs)
- CRAP 380: DbDataReaderExtensions.GetModelInternal (src/Sean.Core.DbRepository/Extensions/DbDataReaderExtensions.cs)
- CRAP 462: DbProviderFactoryExtensions.GetDatabaseType (src/Sean.Core.DbRepository/Extensions/DbProviderFactoryExtensions.cs)
- CRAP 552: DataRowExtensions.ToEntity (src/Sean.Core.DbRepository/Extensions/DataRowExtensions.cs)
- CRAP 702: DbParameterExtensions.SetParameterTypeAndValue (src/Sean.Core.DbRepository/Extensions/DbParameterExtensions.cs)
- Change coupling: DatabaseTypeExtensions.cs ↔ DbProviderFactoryExtensions.cs (src/Sean.Core.DbRepository/Extensions/DatabaseTypeExtensions.cs)
- Change coupling: DbProviderFactoryExtensions.cs ↔ InsertableSqlBuilder.cs (src/Sean.Core.DbRepository/Extensions/DbProviderFactoryExtensions.cs)
- Change coupling: DbProviderFactoryExtensions.cs ↔ QueryableSqlBuilder.cs (src/Sean.Core.DbRepository/Extensions/DbProviderFactoryExtensions.cs)
- DataRowExtensions.ToEntity (cognitive 59) (src/Sean.Core.DbRepository/Extensions/DataRowExtensions.cs)
- DataRowExtensions.ToEntity (cyclomatic 23) (src/Sean.Core.DbRepository/Extensions/DataRowExtensions.cs)
- …and 108 more

## New (231)

- Banned license: MySql.Data
- Banned license: MySql.Data
- BaseSqlGenerator.ConvertFieldDefaultValue (cyclomatic 30) (src/Sean.Core.DbRepository/CodeFirst/SqlGenerator/BaseSqlGenerator.cs)
- BaseSqlGenerator.GetCreateIndexSql (cognitive 18) (src/Sean.Core.DbRepository/CodeFirst/SqlGenerator/BaseSqlGenerator.cs)
- CRAP 124: DatabaseTypeExtensions.GetSqlForTableExists (src/Sean.Core.DbRepository/Extensions/DatabaseTypeExtensions.cs)
- CRAP 124: DatabaseTypeExtensions.GetSqlForTableFieldExists (src/Sean.Core.DbRepository/Extensions/DatabaseTypeExtensions.cs)
- CRAP 161: DatabaseTypeExtensions.MarkAsIdentifier (src/Sean.Core.DbRepository/Extensions/DatabaseTypeExtensions.cs)
- CRAP 191: DbProviderFactoryExtensions.GetDatabaseType (src/Sean.Core.DbRepository/Extensions/DbProviderFactoryExtensions.cs)
- CRAP 56: EnumExtensions.ToSqlString (src/Sean.Core.DbRepository/Extensions/EnumExtensions.cs)
- CRAP 74: InsertableSqlBuilder.BuildSqlCommand (src/Sean.Core.DbRepository/SqlBuilder/InsertableSqlBuilder.cs)
- CRAP 89: QueryableSqlBuilder.BuildSqlCommand (src/Sean.Core.DbRepository/SqlBuilder/QueryableSqlBuilder.cs)
- CRAP 96: ExpressionExtensions.GetFieldNames (src/Sean.Core.DbRepository/Extensions/ExpressionExtensions.cs)
- Change coupling: DataRowExtensions.cs ↔ DbFactory.cs (src/Sean.Core.DbRepository/Extensions/DataRowExtensions.cs)
- CommentedOutCode (src/Sean.Core.DbRepository/Config/MultiConnectionSettings.cs)
- CommentedOutCode (src/Sean.Core.DbRepository/DbFirst/CodeGenerator/CodeGeneratorForPostgreSql.cs)
- ConditionBuilder.BuildInCondition (cognitive 21) (src/Sean.Core.DbRepository/ExpressionResolve/ConditionBuilder.cs)
- ConditionBuilder.BuildLikeOrEqualCondition (cyclomatic 16) (src/Sean.Core.DbRepository/ExpressionResolve/ConditionBuilder.cs)
- DataRowExtensions.CreateMapper (cognitive 18) (src/Sean.Core.DbRepository/Extensions/DataRowExtensions.cs)
- DbDataReaderExtensions.CreateModelMapper (cognitive 20) (src/Sean.Core.DbRepository/Extensions/DbDataReaderExtensions.cs)
- DbParameterExtensions.SetParameterTypeAndValue (cognitive 18) (src/Sean.Core.DbRepository/Extensions/DbParameterExtensions.cs)
- …and 211 more

## Changes since last survey

- 74 commits — 38 feature/other, 36 fixes

## By area

- src/Sean.Core.DbRepository — 36 commits
- test/Sean.Core.DbRepository.Test — 19 commits
- test/Sean.Core.DbRepository.MySqlTest — 12 commits
- config/Common.props — 2 commits
- (root) — 1 commit
- examples/EntityFramework — 1 commit
- scripts/Publish-NuGet.ps1 — 1 commit
- src/Sean.Core.DbRepository.Dapper — 1 commit
- src/Sean.Core.DbRepository.EntityFramework — 1 commit

## Notable commits

- fix: fix: 修复 CodeFirst 多方言 DDL 生成问题
- fix: fix: 修复 DataReader 限量读取越界消费
- fix: fix: 修复 IN 条件中惰性枚举值丢失问题
- fix: fix: 修复 MySQL 升级时字段大小写误判
- fix: fix: 修复 MySQL 表字段存在性查询的名称转义
- fix: fix: 修复 Oracle 分页与 SQL 参数解析问题
- fix: fix: 修复 QuestDB LIKE 模式转义
- fix: fix: 修复 ROW_NUMBER 分页的外层字段引用
- fix: fix: 修复 SQL 字面量格式化的文化敏感与转义问题
- fix: fix: 修复 SQLite 元数据查询的表名单引号转义
- fix: fix: 修复 SQLite 表字段存在性查询的名称转义
- fix: fix: 修复可空类型、泛型实体和元组映射
- fix: fix: 修复大范围枚举参数转换溢出
- fix: fix: 修复实体字段映射并复用列映射
- fix: fix: 修复批量输入重复枚举与构建状态污染
- fix: fix: 修复泛型命令参数共享与自增主键回写
- fix: fix: 修复表缓存复合键冲突
- fix: fix: 修复表达式解析层的多个正确性问题
- fix: fix: 修复连接字符串解析与配置重载
- fix: fix: 修复连接释放与 AddOrUpdate 事务一致性问题
- …and 54 more

## Architecture

- Unchanged — 1 containers · 1 contexts · 0 edges
