I've got a WPF application that updates my database from an in-code entity model. There might be instances it updates the DB while you will find customers connected and I must place it in Single-User-Mode to prevent errors.

I'd like to prevent using sql. I know will be able to run sql using:

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

I'd rather make use of a command inside a C# library to get this done however i have no idea where you can look.

It is possible to method to set the DB to SUM without needing SQL?

And So I used the SMO server objects such as this:

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);

The issue was this opened up another connection than my datacontext thus kicking myself off and never letting me access the DB. Ultimately I needed to revert to presenting SQL.

You should use SQLDMO to handle SQL Server objects.

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