Tracking active document in Visual Studio 2017

I used to have active work item tracking turned on in my Solution Explorer, but that can get annoying, so I turned it off, but then I found I spend too much time searching for my active document. I figured there must be an easier way. Sure enough, Visual Studio has got me covered on this…

So, active item tracking is set in the configuration settings:

ActiveItem1

As you see, I have turned it off.

Now when you have an active document open in the editor, the Solution Explorer will start a bi-directional arrow icon:

ActiveItem2

Press it to have the solution explorer track down the active document in the solution explorer. The feature is called ‘Sync with Active Document’.¬†Also accesible via keyboard shortcut: CTRL+[, S

 

 

Database-Update to recreate database on Azure

I’ve been working on an Entity Framework Code First solution using an Azure database. The migrations work like a charm, but often I’d like to recreate the database from scratch and re-seed from scratch. DropAndRecreate does not work due to permission issues, so the next best thing is to drop all tables in the database and use Database-Update from the Package Manager Console to recreate the database.

I use the following scripts to drop every constraint and then every table:


while(exists(select 1 from INFORMATION_SCHEMA.TABLE_CONSTRAINTS where CONSTRAINT_TYPE='FOREIGN KEY' and CONSTRAINT_SCHEMA != 'sys'))
begin
declare @sql nvarchar(2000)
SELECT TOP 1 @sql=('ALTER TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME + '] DROP CONSTRAINT [' + CONSTRAINT_NAME + ']')
FROM information_schema.table_constraints
WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'
exec (@sql)
PRINT @sql
end


while(exists(select 1 from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA != 'sys'))
begin
declare @sql nvarchar(2000)
SELECT TOP 1 @sql=('DROP TABLE ' + TABLE_SCHEMA + '.[' + TABLE_NAME + ']')
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA != 'sys'
exec (@sql)
PRINT @sql
end

After which I use the Package Command Console to run:


Update-Database -ConnectionStringName AzureDevTest

Since the migration history table is missing it will run all the migrations.