GERANDO BANCO VIA WEBAPI COM ENTITY CORE
Olá,
Montei um projeto webapi 1.1 + entity core, e gostaria que o próprio entity criasse as tabelas no banco de dados. Já consegui conectar com o SQL, mas só funciona se eu criar as tabelas na mão.
Alguém saberia como devo proceder?
DefaulContext.cs
Startup.cs
Montei um projeto webapi 1.1 + entity core, e gostaria que o próprio entity criasse as tabelas no banco de dados. Já consegui conectar com o SQL, mas só funciona se eu criar as tabelas na mão.
Alguém saberia como devo proceder?
DefaulContext.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using api.Models;
namespace api.Data
{
public class DefaultContext : DbContext
{
public DefaultContext(DbContextOptions<DefaultContext> options)
: base(options)
{ }
public DbSet<Pais> Pais { get; set; }
}
}
Startup.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using api.Models;
using Microsoft.EntityFrameworkCore;
namespace api
{
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile([Ô]appsettings.json[Ô], optional: false, reloadOnChange: true)
.AddJsonFile($[Ô]appsettings.{env.EnvironmentName}.json[Ô], optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
var connection = @[Ô]Server=.;Database=Teste;User ID=jorge;PWD=acapivara;[Ô];
services.AddDbContext<Data.DefaultContext>(options => options.UseSqlServer(connection));
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection([Ô]Logging[Ô]));
loggerFactory.AddDebug();
app.UseMvc();
}
}
}
A metodologia do que você está se referindo se chama [Ô]Code First[Ô], onde você desenvolve suas classes POCO e as integra ao banco de dados. Tenho um vÃdeo sobre isso aqui
Olá!
Legal, deu certo. Só tenho mais uma dúvida.
Após realizar o migrations vi que algumas colunas ele cria como nullable, só que eu gostaria que fossem not null. Vi que posso alterar a codificação do migration, mas gostaria de fazer esse mapeamento diretamente na entity, pois se um dia eu fizer uma modificação nela e tentar usar o add-migration novamente as colunas não serão marcadas como not null e com a especificação do max lenght.
Nesse caso, como devo fazer?
Legal, deu certo. Só tenho mais uma dúvida.
Após realizar o migrations vi que algumas colunas ele cria como nullable, só que eu gostaria que fossem not null. Vi que posso alterar a codificação do migration, mas gostaria de fazer esse mapeamento diretamente na entity, pois se um dia eu fizer uma modificação nela e tentar usar o add-migration novamente as colunas não serão marcadas como not null e com a especificação do max lenght.
Nesse caso, como devo fazer?
Propriedades que são obrigatórias, devem ser decoradas com [Ô][Required][Ô]. Uma boa prática, é sempre dar uma olhada no script gerado pela migração(add-migration) e antes de fazer o update no banco.
Joia, resolvido.
Tópico encerrado , respostas não são mais permitidas