c# - 有没有办法在 C# 中将数据库设置为单用户模式?

标签 c# wpf database entity-framework

我有一个 WPF 应用程序,可以从代码内实体模型更新我的数据库。在某些情况下,它会在有用户连接时更新数据库,我想将其置于单用户模式以避免错误。

我也想避免使用sql。我知道我可以使用以下命令运行 sql:

DataContext.ExecuteCommand("ALTER DATABASE...") 

我宁愿使用 C# 库中的命令来执行此操作,但我不知道在哪里查找。

有没有一种方法可以在不使用 SQL 的情况下将 DB 设置为 SUM?

最佳答案

所以我使用了这样的 SMO 服务器对象:

Server server = GetServer();
         if (server != null)
        {
            Database db = server.Databases[Settings.Instance.GetSetting("Database", "MyDB")];
            if (db != null)
            {
                server.KillAllProcesses(db.Name);
                db.DatabaseOptions.UserAccess = DatabaseUserAccess.Single;
                db.Alter(TerminationClause.RollbackTransactionsImmediately);

问题是,这打开了与我的数据上下文不同的连接,从而使我自己无法访问数据库。最后我不得不恢复使用 SQL。

关于c# - 有没有办法在 C# 中将数据库设置为单用户模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1521315/

相关文章:

c# - 如何将 textblock.foreground 绑定(bind)到变量? (WPF C#)

mysql - 删除VB.NET中的SQL语句

c# - 给定 bool 函数渲染任意 CSG 实体?

c# - 添加程序集引用对话框

c# - 具有非唯一索引的列表

c# - 如何重命名动态创建的 TreeView 项目的标题

c# - DotNetOpenAuth - 如何唯一标识 Google 用户?

c# - 无法填充 DataGrid

php - SQL SELECT id WHERE 电子邮件相同

ruby-on-rails - 需要图像托管网站的建议