2) Creamos la base de datos en sql server y nuestros usuarios administrador y de lectura
CaducaSQLBD.sql
//Creamos la base de datos
CREATE DATABASE caduca
GO
//Creamos un login para el usuario administrador
CREATE LOGIN AdminCaduca WITH PASSWORD = 'StKRV6MR6A'
GO
//Creamos un login para el usuario de lectura
CREATE LOGIN SistemaCaduca WITH PASSWORD = 'xADcUaP5cs'
GO
//Cambiamos a la base de datos
USE caduca
GO
//Creamos los usuarios administrador y de sistema
CREATE USER AdminCaduca FOR LOGIN AdminCaduca;
CREATE USER SistemaCaduca FOR LOGIN SistemaCaduca;
//Agregamos el permiso al usuario administrador de db_owner el cual
//tiene acceso total a la base de datos
ALTER ROLE db_owner ADD MEMBER AdminCaduca;
//Agregamos los roles de escritura y lectura para el
// usuario de sistema
ALTER ROLE db_datareader ADD MEMBER SistemaCaduca;
ALTER ROLE db_datawriter ADD MEMBER SistemaCaduca;
3) Agregamos una nueva cadena de conexión en nuestro archivo appsettings.json con el nombre SQLServerConnection
4) Cambiamos nuestro archivo Startup.cs para que utilice Sql Server, dejamos comentada nuestra conexión MySQL por si deseamos regresar a MySQL y nuestra nueva cadena de conexión
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
//Código
//Conexión MySQL
//services.AddDbContext<CaducaContext>(options =>
//options.UseMySql(Configuration.GetConnectionString
//("DefaultConnection")));
//Conexión SQL Server
services.AddDbContext<CaducaContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString
("SQLServerConnection")));
}
5) Modificamos nuestra migración para que cree correctamente el campo autoincrement, ya que se agrego una notación especial para MySQL (.Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn)) agregamos el código para generar el identity en sql Server .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn)
Migracion_TablaProducto.cs
migrationBuilder.CreateTable(
name: "Producto",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("SqlServer:ValueGenerationStrategy",
SqlServerValueGenerationStrategy.IdentityColumn),
// .Annotation("MySql:ValueGenerationStrategy"
//, MySqlValueGenerationStrategy.IdentityColumn),
}
También modificamos la migración de la TablaCategoría de la misma forma
6) Ejecutamos el comando Update-Database en la Consola del Administrador de Paquetes
Listo hemos cambiado la base de datos a SQL Server.