SuperAPI AI 工具集

vb-database

编程与开发

查看项目

更新于 10-15 08:58

技能介绍

用途

该技能为 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 建模与迁移的场景。

限制

资料未提供该技能的安装方式、运行环境要求、支持的数据库类型范围、版本兼容性、收费信息或具体平台限制,这些内容暂未提供。