Estoy entrando en el Entity Framework, pero no estoy seguro de si me falta un punto crítico en el enfoque de código primero.
Estoy usando un patrón de repositorio genérico basado en el código de https://genericunitofworkandrepositories.codeplex.com/ y he creado mis entidades.
Pero cuando intento acceder o modificar la entidad, me encuentro con lo siguiente:
System.InvalidOperationException: el tipo de entidad Estate no es parte del modelo para el contexto actual.
Ocurre cuando intento acceder desde mi repositorio:
public virtual void Insert(TEntity entity)
{
((IObjectState)entity).ObjectState = ObjectState.Added;
_dbSet.Attach(entity); // <-- The error occurs here
_context.SyncObjectState(entity);
}
La base de datos (./SQLEXPRESS) se crea muy bien, pero las entidades (tablas) simplemente no se crean al inicio.
Me pregunto si necesito establecer explícitamente la asignación de las entidades. ¿EF no puede hacerlo por sí solo?
Mi entidad es:
public class Estate : EntityBase
{
public int EstateId { get; set; }
public string Name { get; set; }
}
Mi contexto es así:
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>();
}
}
¿Hay alguna razón específica por la que se produce este error? He intentado habilitar las migraciones y habilitar las migraciones automáticas sin ninguna ayuda tampoco.