GERANDO BANCO VIA WEBAPI COM ENTITY CORE

DEXIE 27/06/2017 10:16:24
#474772
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

  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();
}
}
}
KERPLUNK 27/06/2017 11:34:24
#474776
Resposta escolhida
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
DEXIE 28/06/2017 09:26:20
#474817
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?
KERPLUNK 28/06/2017 13:23:19
#474832
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.
DEXIE 28/06/2017 16:17:01
#474844
Joia, resolvido.
Tópico encerrado , respostas não são mais permitidas