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);