.net Core 中如果需要引用,需要事先安装两个包

Install-Package System.Data.Common
Install-Package System.Data.SqlClient
 /// <summary>
    /// 数据库操作帮助类
    /// </summary>
    internal class DataBaseHelper
    {
        /// <summary>
        /// 连接字符串信息
        /// </summary>
        public DbConnectionStringBuilder ConBuiler { get; set; }

        private DataBaseHelper()
        {

        }


        /// <summary>
        /// 创建实例
        /// </summary>
        /// <returns></returns>
        public DataBaseHelper CreateInstance(DbConnectionStringBuilder builder)
        {
            var dbHelper = new DataBaseHelper();
            dbHelper.ConBuiler = builder;
            return dbHelper;
        }

        /// <summary>
        /// 备份数据库
        /// </summary>
        /// <param name="dataBaseName"></param>
        /// <param name="fileFullName"></param>
        public int BackUp(string dataBaseName, string fileFullName)
        {

            using (var connection = new SqlConnection(ConBuiler.ConnectionString))
            {
                var sqlStr = @"USE [master]; BACKUP DATABASE [" + dataBaseName + "] TO DISK = '" + fileFullName + "' WITH INIT;";
                var cmd = new SqlCommand(sqlStr, connection);
                try
                {
                    connection.Open();
                    var count = cmd.ExecuteNonQuery();
                    return count;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }


        }

        /// <summary>
        /// 备份数据库
        /// </summary>
        /// <param name="restoreDataBaseName">还原的数据库名称(注意唯一性)</param>
        /// <param name="fileFullName">备份文件完整物理路径</param>
        public int Restore(string restoreDataBaseName, string fileFullName,string restoreDataBaseDir )
        {

            using (var connection = new SqlConnection(ConBuiler.ConnectionString))
            {
                try
                {
                    connection.Open();
                    //获取备份文件的文件名
                    var sqlGetFile = "RESTORE FILELISTONLY from disk='{fileFullName}'";
                    var getFileCmd = new SqlCommand(sqlGetFile, connection);
                    SqlDataReader dr;
                    dr = getFileCmd.ExecuteReader();
                    var list =new List<string>();
                    while (dr.Read())
                    {
                        list.Add(dr.GetString(0));
                    }
                    dr.Close();
                    if (list.Count != 2)
                    {
                        throw new ArgumentException("非法的数据库备份文件。");
                    }
                    //开始还原
                    var sqlStr = $@"use [master];RESTORE DATABASE [{restoreDataBaseName}] FROM DISK='{fileFullName}' 
with move '{list[0]}'
to '{restoreDataBaseDir}\{list[0]}.mdf',
move '{list[1]}'
to '{restoreDataBaseDir}\{list[1]}.LDF'";
                    var cmd = new SqlCommand(sqlStr, connection);
                    var count = cmd.ExecuteNonQuery();
                    return count;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }


        }

        /// <summary>
        /// 删除数据库  删除或者附加前记得干掉所有的进程
        /// </summary>
        /// <returns></returns>
        public int Drop()
        {
// 执行 drop database databaseName
return 0;
}
        /// <summary>
        /// 分离数据库
        /// </summary>
        /// <returns></returns>
        public int Detach()
        {
//exec sp_detach_db DL_DZ_02
return 0; } /// <summary> /// 附加数据库 /// </summary> /// <returns></returns> public int Attach() {
//
exec sp_attach_db DL_DZ_02,'E:\DbCreate\DBRestore\2347\DL_DZ.mdf'
          return 0; 
}
}