Estou entrando no Entity Framework, mas não tenho certeza se estou perdendo um ponto crítico na abordagem de primeiro código.
Estou usando um padrão de repositório genérico baseado no código de https://genericunitofworkandrepositories.codeplex.com/ e criei minhas entidades.
Mas quando tento acessar ou modificar a entidade, deparo com o seguinte:
System.InvalidOperationException: O tipo de entidade Estate não faz parte do modelo para o contexto atual.
Isso acontece quando estou tentando acessá-lo no meu repositório:
public virtual void Insert(TEntity entity)
{
((IObjectState)entity).ObjectState = ObjectState.Added;
_dbSet.Attach(entity); // <-- The error occurs here
_context.SyncObjectState(entity);
}
O banco de dados (./SQLEXPRESS) é criado perfeitamente, mas as entidades (tabelas) simplesmente não são criadas na inicialização.
Eu estou querendo saber se eu preciso definir explicitamente o mapeamento das entidades? A EF não pode fazer isso sozinha?
Minha entidade é:
public class Estate : EntityBase
{
public int EstateId { get; set; }
public string Name { get; set; }
}
Meu contexto é o seguinte:
public partial class DimensionWebDbContext : DbContextBase // DbContextBase inherits DbContext
{
public DimensionWebDbContext() :
base("DimensionWebContext")
{
Database.SetInitializer<DimensionWebDbContext>(new CreateDatabaseIfNotExists<DimensionWebDbContext>());
Configuration.ProxyCreationEnabled = false;
}
public new IDbSet<T> Set<T>() where T : class
{
return base.Set<T>();
}
}
Existe algum motivo específico para esse erro ocorrer? Eu tentei habilitar migrações e habilitar migrações automáticas sem qualquer ajuda também.