Есть ли способ установить БД как однопользовательский режим в C #? - PullRequest
1 голос
/ 05 октября 2009

У меня есть приложение WPF, которое обновляет мою базу данных из модели сущностей в коде. Могут быть случаи, когда он обновляет БД, пока подключены пользователи, и я хотел бы перевести ее в однопользовательский режим, чтобы избежать ошибок.

Я также хотел бы избежать использования sql. Я знаю, что я могу запустить sql используя:

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

Я бы предпочел использовать команду в библиотеке C # для этого, но я не знаю, где искать.

Есть ли способ установить для БД значение SUM без использования SQL?

Ответы [ 2 ]

3 голосов
/ 12 октября 2009

Итак, я использовал объекты 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.

0 голосов
/ 05 октября 2009

Вы можете использовать SQLDMO для управления объектами SQL Server.

http://msdn.microsoft.com/en-us/library/ms162169.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...