J'entre dans Entity Framework, mais je ne sais pas si je manque un point critique dans l'approche code-first.
J'utilise un modèle de référentiel générique basé sur le code de https://genericunitofworkandrepositories.codeplex.com/ et j'ai créé mes entités.
Mais lorsque j'essaye d'accéder ou de modifier l'entité, je rencontre ce qui suit:
System.InvalidOperationException: le type d'entité Estate ne fait pas partie du modèle pour le contexte actuel.
Cela se produit lorsque j'essaye d'y accéder depuis mon référentiel:
public virtual void Insert(TEntity entity)
{
((IObjectState)entity).ObjectState = ObjectState.Added;
_dbSet.Attach(entity); // <-- The error occurs here
_context.SyncObjectState(entity);
}
La base de données (./SQLEXPRESS) est créée très bien, mais les entités (tables) ne sont tout simplement pas créées au démarrage.
Je me demande si j'ai besoin de définir explicitement le mappage des entités? EF n'est-il pas capable de le faire seul?
Mon entité est:
public class Estate : EntityBase
{
public int EstateId { get; set; }
public string Name { get; set; }
}
Mon contexte est le suivant:
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>();
}
}
Y a-t-il une raison spécifique pour laquelle cette erreur se produit? J'ai essayé d'activer les migrations et d'activer les migrations automatiques sans aucune aide non plus.