Sto entrando in Entity Framework, ma non sono sicuro di perdere un punto critico nell'approccio basato sul codice.
Sto usando un modello di repository generico basato sul codice di https://genericunitofworkandrepositories.codeplex.com/ e ho creato le mie entità.
Ma quando provo ad accedere o modificare l'entità mi imbatto nel seguente:
System.InvalidOperationException: il tipo di entità Estate non fa parte del modello per il contesto corrente.
Succede quando sto provando ad accedervi dal mio repository:
public virtual void Insert(TEntity entity)
{
((IObjectState)entity).ObjectState = ObjectState.Added;
_dbSet.Attach(entity); // <-- The error occurs here
_context.SyncObjectState(entity);
}
Il database (./SQLEXPRESS) viene creato bene, ma le entità (tabelle) non vengono create all'avvio.
Mi chiedo se devo impostare esplicitamente la mappatura delle entità? EF non è in grado di farlo da solo?
La mia entità è:
public class Estate : EntityBase
{
public int EstateId { get; set; }
public string Name { get; set; }
}
Il mio contesto è così:
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>();
}
}
C'è un motivo specifico per cui si verifica questo errore? Ho provato ad abilitare le migrazioni e abilitare le migrazioni automatiche senza alcun aiuto.