我有一个 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/