Migrations
Para criar a tabela no Banco de dados através do seu modelo(<classe>.cs) criado, deverá ser utilizado o Entity Framework Migration.
No Visual Studio, vá em "Tools >> Nuget Package Manager >> Package Manager Console" selecionar o Projeto que contém os dados do seu Entity Framework, que no nosso caso é o Projeto “CoreEdu.Entities”. (No Atribuicoes é o AtribuicaoAulas.Repository.EntityFramework)
//Se o seu projeto ainda não estiver habilitado para usar o EF Migration deverá executar o comando abaixo (No nosso caso já está habilitado). -Enable-Migrations
//Para verificar a difirença entre o seu banco de dados e suas classes de Modelo, executar o comando abaixo. -Add-Migration TesteMigra -Force
//Para aplicar as mudanças para o banco de dados, do arquivo gerado do comando anterior, executar o comando abaixo. -Update-Database –Verbose –TargetMigration: TesteMigra
//Aplicar um ou mais script(s) que está entre dois scripts em períodos anteriores -Update-Database –Verbose -SourceMigration: NOME_SCRIPT_INICIAL(1) –TargetMigration: NOME_SCRIPT_FINAL
//Visualizar a diferença entre um ou mais script(s) que está entre dois scripts em períodos anteriores //(Adiciona-se "-Script") -Update-Database -Script –Verbose -SourceMigration: NOME_SCRIPT_INICIAL(1) –TargetMigration: NOME_SCRIPT_FINAL
OBS: (1)- Para o NOME_SCRIPT_INICIAL, deverá ser informado o nome do script anterior ao o que você deseja executar.
Outros exemplos
-Criar unique Index
modelBuilder
.Entity<User>() .Property(t => t.FirstName) .IsRequired() .HasMaxLength(60) .HasColumnAnnotation( IndexAnnotation.AnnotationName, new IndexAnnotation( new IndexAttribute("IX_FirstNameLastName", 1) { IsUnique = true }));
modelBuilder
.Entity<User>() .Property(t => t.LastName) .IsRequired() .HasMaxLength(60) .HasColumnAnnotation( IndexAnnotation.AnnotationName, new IndexAnnotation( new IndexAttribute("IX_FirstNameLastName", 2) { IsUnique = true }));
-Campo autoincremento ToTable("Place", "dbo");
HasKey(p => p.PlaceId); Property(p => p.PlaceId) .HasColumnName("PlaceId") .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);