我有一个WPF应用程序,它可以从代码内实体模型中更新我的数据库。可能存在这样的情况:当用户连接时它会更新数据库,并且我希望将其置于单用户模式以避免错误。
我还想避免使用sql。我知道我可以使用:
运行sqlDataContext.ExecuteCommand("ALTER DATABASE...")
我宁愿在C#库中使用命令来执行此操作,但我不知道在哪里查看。
有没有办法在不使用SQL的情况下将数据库设置为SUM?
答案 0 :(得分:3)
所以我使用了这样的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);
问题是,这打开了一个与我的datacontext不同的连接,从而自行关闭并且不让我访问数据库。最后,我不得不恢复使用SQL。
答案 1 :(得分:0)
您可以使用SQLDMO来管理SQL Server对象。