/// <summary> /// 异步确保已创建数据库。 /// </summary> /// <param name="cancellationToken">给定的 <see cref="CancellationToken"/>(可选)。</param> /// <returns>返回一个包含是否已创建的布尔值的异步操作。</returns> protected virtual async Task <bool> EnsureDatabaseCreatedAsync (CancellationToken cancellationToken = default) { if (await CreationValidator.IsCreatedAsync(this, cancellationToken).ConfigureAwait()) { return(true); } if (await Database.EnsureCreatedAsync(cancellationToken).ConfigureAwait()) { await CreationValidator.SetCreatedAsync(this, cancellationToken).ConfigureAwait(); Dependency.Options.PostDatabaseCreatedAction?.Invoke(this); // 初始化迁移 if (!IsFromMigrateInvoke) { await MigrateAsync(cancellationToken).ConfigureAwait(); } return(true); } return(false); }
/// <summary> /// 确保已创建数据库。 /// </summary> /// <returns>返回是否已创建的布尔值。</returns> internal protected virtual bool EnsureDatabaseCreated() { if (CreationValidator.IsCreated(this)) { return(true); } if (Database.EnsureCreated()) { CreationValidator.SetCreated(this); Dependency.Options.PostDatabaseCreatedAction?.Invoke(this); // 初始化迁移 if (!IsFromMigrateInvoke) { Migrate(); } return(true); } return(false); }