| 123456789101112131415161718192021222324252627282930313233 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace TeamAAS_VP.Interfaces
- {
- /// <summary>
- /// 数据库初始化接口。
- /// 提供用于初始化数据库及检查数据库是否存在的抽象方法,适用于应用启动、迁移或初始化流程。
- /// 实现者应负责确保初始化过程的幂等性与线程安全,并在发生严重错误时抛出适当异常以便上层处理。
- /// </summary>
- public interface IDatabaseInitializer
- {
- /// <summary>
- /// 初始化数据库。
- /// 在应用程序启动或需要创建/升级数据库结构时调用。实现应执行必要的创建、架构迁移、索引或种子数据填充等操作。
- /// 实现应尽可能保证方法的幂等性(重复调用不会产生不一致状态),并对并发调用做好同步处理。
- /// </summary>
- void InitializeDatabase();
- /// <summary>
- /// 检查目标数据库是否存在并可访问。
- /// 用于在执行初始化或迁移前判断数据库是否已存在。实现应尽量以低开销方式进行检查,并在遇到非致命问题时返回 <c>false</c>。
- /// 在发生致命错误(例如配置严重错误或权限问题)时,可以抛出异常以便调用方处理。
- /// </summary>
- /// <returns>
- /// 如果目标数据库存在且可访问,则返回 <c>true</c>;否则返回 <c>false</c>。
- /// </returns>
- bool DatabaseExists();
- }
- }
|