none
EF - Criar tabela RRS feed

  • Pergunta

  • Tenho notado que independentemente se criamos um migration e update-database (via code-first), uma tabela so e' criada quando eu insiro um valor nela ou a acesso.

    Mas como faco pra tabela ser criada, cada vez que existir um novo modelo na minha camada de Models ? Sem que eu necessite acessar ou inserrir valor na tabela para que ela seja criada ?

    terça-feira, 27 de maio de 2014 21:02

Todas as Respostas

  • Olá amigo, as entidades geram as tabelas se estiverem decladaras no DbSet do seu contexto. Estando declaradas, ao rodar seu update-database com auto-migration ou manual o banco será atualizado.

    Exemplo de contexto:

    public class Context : DbContext { static Context() { Database.SetInitializer<Context>(null); } public Context() : base("Name=Context") {} // Minha entidade Usuario será criada no banco. public DbSet<Usuario> Usuario { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder) { // Personalize o OnModelCreating //Estou definindo que as tabelas no banco serão geradas através do nome de TB_NomeEntidade modelBuilder.Types().Configure(entity => entity.ToTable("TB_" + entity.ClrType.Name)); }

    Espero que ajude, abraços

    quarta-feira, 28 de maio de 2014 04:58
  • O que faz essa linha ? Database.SetInitializer<Context>(null);

    Pq aqui eu digo para o banco ser deletado e criado todas as vezes certo ? Embora isso nao esteja acontecendo.
    Database.SetInitializer<meuContext>(new DropCreateDatabaseAlways<meuContext>());

    quarta-feira, 28 de maio de 2014 16:30