SQL Server cannot directly change a string to a binary, so it asks for data conversion. Regarding the First Code Migrations, I would drop the AlterColumn instructions from DbMigration, and instead manually write:
AddColumn("dbo.TableName", "ColumnNameTmp", c => c.Binary()); Sql("Update dbo.TableName SET ColumnNameTmp = Convert(varbinary, ColumnName)"); DropColumn("dbo.TableName", "ColumnName"); RenameColumn("dbo.TableName", "ColumnNameTmp", "ColumnName")
And the opposite is in the Down method, if necessary. (above is pseudo code, forgive any syntax errors)
source share