Ich komme in das Entity Framework, bin mir aber nicht sicher, ob mir ein kritischer Punkt im Code-First-Ansatz fehlt.
Ich verwende ein generisches Repository-Muster, das auf dem Code von https://genericunitofworkandrepositories.codeplex.com/ basiert, und habe meine Entitäten erstellt.
Wenn ich jedoch versuche, auf die Entität zuzugreifen oder sie zu ändern, stoße ich auf Folgendes:
System.InvalidOperationException: Der Entitätstyp Estate ist nicht Teil des Modells für den aktuellen Kontext.
Es passiert, wenn ich versuche, von meinem Repository aus darauf zuzugreifen:
public virtual void Insert(TEntity entity)
{
((IObjectState)entity).ObjectState = ObjectState.Added;
_dbSet.Attach(entity); // <-- The error occurs here
_context.SyncObjectState(entity);
}
Die Datenbank (./SQLEXPRESS) wird einwandfrei erstellt, aber die Entitäten (Tabellen) werden beim Start einfach nicht erstellt.
Ich frage mich, ob ich die Zuordnung der Entitäten explizit festlegen muss. Kann EF das nicht alleine?
Mein Wesen ist:
public class Estate : EntityBase
{
public int EstateId { get; set; }
public string Name { get; set; }
}
Mein Kontext ist wie folgt:
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>();
}
}
Gibt es einen bestimmten Grund, warum dieser Fehler auftritt? Ich habe versucht, Migrationen zu aktivieren und automatische Migrationen auch ohne Hilfe zu aktivieren.