San*_*nke 8 c# database sql-server entity-framework restore
我想关闭与SQL Server的现有连接,以便我可以对该数据库进行还原.我正在使用实体框架.我试着执行
alter database YourDb
set single_user with rollback immediate
Run Code Online (Sandbox Code Playgroud)
但后来我得到一个例外
连接未关闭
我无法弄清楚为什么连接不允许关闭?
此图像显示完整的例外情况

这是方法,
public void dbQueueryExctr(string queuery)
{
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
using (SqlConnection connectionx = new SqlConnection(CONNECTIONSTRING))
{
connectionx.Open();
//connectionx.Open(); // Removed
cmd.CommandText = queuery;
cmd.CommandType = CommandType.Text;
cmd.Connection = connectionx;
reader = cmd.ExecuteReader();
connectionx.Close();
}
Run Code Online (Sandbox Code Playgroud)
编辑: 我删除了第一个.Open().现在我只有Open()
Def*_*ult 11
似乎Entity Framework保持与数据库的连接.您可以看到它sp_who2在SQL Server Management Studio中执行,其中Entity Framework 在ProgramName 下列为EntityFrameworkMUE.
您不必使用"原始"sql语句来断开活动连接,它也可以通过这种方式解决:
Server server = new Server(".\\SQLEXPRESS");
Database database = new Database(server, dbName);
database.Refresh();
server.KillAllProcesses(dbName);
database.DatabaseOptions.UserAccess = DatabaseUserAccess.Single;
database.Alter(TerminationClause.RollbackTransactionsImmediately);
//restore.SqlRestore(server);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16335 次 |
| 最近记录: |