Olá pessoa, estou com um problema quanto algumas migrations no meu app ASP .NET Core.
Ainda sou iniciante em C#, ASP .NET Core e tal. Enfim, gerei um scaffold para um webapp, evidentemente usando ASP .NET Core, até aí tudo bem, o problema é na mudança de SGBD, onde eu mudei de SQL Server para MySQL, tendo em vista que antes de eu aplicar essa mudança de SGBD, a aplicação estava funcionando perfeitamente, inserindo, deletando e atualizando os dados conforme minha necessidade, no entanto, quando eu adicionei os seguintes pacotes via dotnet add, o app não criou a base de dados e muito menos as tabelas necessárias.
Pacotes adicionados:
dotnet add package Pomelo.EntityFrameworkCore.MySql
dotnet add package Pomelo.EntityFrameworkCore.MySql.Design
dotnet add package Microsoft.EntityFrameworkCore.Tools
Vejam meu FirstProject.csproj:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UserSecretsId>48eb5dc9-c21c-4534-bef1-a9745a5b3bbc</UserSecretsId>
<DockerDefaultTargetOS>Windows</DockerDefaultTargetOS>
<DockerfileContext>.</DockerfileContext>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.9" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.9" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.9">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.9" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.4" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="3.2.4" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql.Design" Version="1.1.2" />
</ItemGroup>
</Project>
Percebam que ainda contem o SQL Server e esse SQLite (não me pergunte como foi parar aí kkk), enfim quero apenas utilizar o MySQL. Porém, fiquei com receio de deletar essas linhas com o SQL Server e SQLite; (me orientem aí, please)
Vejam também meu arquivo Startup.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.EntityFrameworkCore;
using FirstProject.Data.Data;
namespace FirstProject {
public class Startup {
public Startup(IConfiguration configuration) {
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) {
/*services.AddRazorPages();
services.AddDbContext<Context>(options =>
options.UseSqlServer(Configuration.GetConnectionString("Context")));*/
var host = Configuration["DBHOST"] ?? "localhost";
var port = Configuration["DBPORT"] ?? "3306";
var password = Configuration["DBPASSWORD"] ?? "yuriMELO123";
services.AddDbContext<Context>(options =>
options.UseMySql($"server={host};userid=root;pwd={password};"
+ $"port={port};database=FirstDatabase"));
services.AddMvc(); // Essa linha não existia com o scaffold, adicionei conforme o tutotial mvc mandou.
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
}
}
}
Meu models, chamado Custumer:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.ComponentModel.DataAnnotations;
namespace FirstProject.models {
public class Custumer {
public string id { get; set; }
public string firstName { get; set; }
public string surname { get; set; }
public int age { get; set; }
[DataType(DataType.Date)]
public DateTime creationDate { get; set; }
}
}
O que há de errado com esses códigos?
Valeu gente!