Não é possível criar o banco de dados ao usar POCO classes geradas como entitis
-
21-12-2019 - |
Pergunta
Por alguma razão eu ter iniciado a minha desenvolvimento do meu projeto do banco de dados.Em seguida, usei POCO para a geração de meu entitities, entidade configurações e o contexto.
Em meu próximo passo, eu gostaria de fazer minha inscrição criar novo banco de dados se o banco de dados especificado na string de conexão do arquivo de configuração não existe.
O problema que eu enfrentei no momento é a seguinte:quando eu estou a tentar obter FirstOrDefault a partir de um DBSet do meu modelo eu estou recebendo a seguinte mensagem de erro
Do sistema.Dados.Entidade.Núcleo.EntityCommandExecutionException:Um erro ocorreu durante a execução do comando de definição.Ver o interior exceção para obter detalhes.---> Sistema.Dados.SqlClient.SqlException:Nome de objecto inválido 'dbo.A função'.
Eu estou usando a seguinte configuração de minha entidade
internal class RoleConfiguration : EntityTypeConfiguration<Role>
{
public RoleConfiguration(string schema = "dbo")
{
ToTable("Role", schema);
HasKey(x => x.RoleId);
Property(x => x.RoleId).HasColumnName("RoleId").IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
HasMany(t => t.Roles_RoleId).WithMany(t => t.Roles_ChildRoleId).Map(m =>
{
m.ToTable("RoleRoles", schema);
m.MapLeftKey("ChildRoleId");
m.MapRightKey("RoleId");
});
}
}
Solução
Se você deseja EF para criar banco de dados para você, você precisa definir correto inicializador no contexto construtor.Por exemplo, como este:
public YourContextEntities() : base("name=ConnectionStringName")
{
Database.SetInitializer(new CreateDatabaseIfNotExists<YourContextEntities>());
}