示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }