用途
该技能为 VB.NET 提供数据库访问的代码模式与最佳实践,重点覆盖 ADO.NET 与 Entity Framework Core 两条技术路线,强调连接管理、参数化查询与异步操作。
主要能力
ADO.NET 模式
- 连接管理:使用 Using 语句确保连接、命令、读取器被正确释放,并配合 OpenAsync、ExecuteReaderAsync、ReadAsync 等异步方法。
- 参数化查询:通过 command.Parameters.Add 或 AddWithValue 传入参数,避免字符串拼接导致的 SQL 注入风险。
- 事务管理:使用 connection.BeginTransaction(),在 Try 中提交、Catch 中回滚并重新抛出异常。
- 批量操作:通过 DataTable 配合 SqlBulkCopy 批量写入,可设置 DestinationTableName 与 BatchSize。
Entity Framework Core 模式
- DbContext 设置:定义 DbSet 属性,在 OnModelCreating 中配置主键、必填、最大长度、唯一索引以及实体间的一对多关系。
- CRUD 仓储:提供 AddAsync、GetByIdAsync(含 Include 加载关联)、UpdateAsync、DeleteAsync 以及带过滤与排序的查询方法。
- 异步查询:FirstOrDefaultAsync、ToListAsync、CountAsync、AnyAsync、SumAsync 等。
- 变更跟踪:可分离实体(EntityState.Detached),遍历 Entry.Properties 查看被修改属性的原值与当前值。
- 数据库迁移:使用 dotnet ef migrations add、database update、回滚到指定迁移、生成 SQL 脚本等命令;并给出迁移类中 Up/Down 方法的写法示例。
- 连接字符串管理:在 appsettings.json 中配置 ConnectionStrings,并在 Startup 中通过 AddDbContext 与 UseSqlServer 注册。
使用方式
技能以代码示例形式呈现,可直接参考其中的模式编写数据访问代码。示例包含推荐写法(✅ DO)与禁止写法(❌ DON'T)对照,例如:使用异步方法、使用参数化查询、用 Using 释放连接、多操作使用事务、用 IQueryable 延迟执行;避免拼接 SQL、忘记释放连接、阻塞异步(.Result 死锁风险)、先 ToList 再过滤导致全表加载。
适用场景
适用于 VB.NET 项目中构建数据访问层、需要防止 SQL 注入、需要异步数据库操作、需要事务一致性或批量写入、以及使用 EF Core 进行 Code-First 建模与迁移的场景。
限制
资料未提供该技能的安装方式、运行环境要求、支持的数据库类型范围、版本兼容性、收费信息或具体平台限制,这些内容暂未提供。