Warum ist die EF code first-Modell werfen backing Kontext Ausnahme? Mit 4.0.3

Hier ist die Ausnahme:

Dem Modell hinter der 'ScannerContext" - Kontext hat sich geändert, seit die
Datenbank wurde erstellt. Erwägen Sie die Verwendung von Code First-Migrationen zu aktualisieren
die Datenbank (http://go.microsoft.com/fwlink/?LinkId=238269).

Bekomme ich jedes mal wenn ich meine Anwendung. Ich kann nicht herausfinden, was es bedeutet. Ich denke, es bedeutet, dass etwas nicht richtig zugeordnet, aber ich kann nicht herausfinden, was. Ich bin mit den code-first-Modell, und ich habe eine bestehende Datenbank, die ich will, völlig custom mappings. Jetzt habe ich alles in meinen Klassen den gleichen Namen wie meiner Datenbank beseitigen Sie mögliche cuases.

Ausnahme wird geworfen, wenn ich versuche zu .Add() die Person, den Kontext.

Der Person, wie es in der Datenbank

Warum ist die EF code first-Modell werfen backing Kontext Ausnahme? Mit 4.0.3

Die Einheit in meinem "DataLayer"

public class EAsset
{
    public int i_GID { get; set; }
    public EAssetType Type { get; set; }
    public EOrgEnvironment Environment { get; set; }
    public EUser Contact { get; set; }
    public string s_Name { get; set; }
    public string s_Role { get; set; }
    public DateTime d_Added { get; set; }
    public DateTime d_LastUpdated { get; set; }
    public bool b_Retired { get; set; }

    public EAsset()
    {
        Type = new EAssetType();
        Environment = new EOrgEnvironment();
        Contact = new EUser();
        d_Added = DateTime.Now;
        d_LastUpdated = DateTime.Now;
    }
}

Das Kontext-Objekt (mit versuchter Tabelle Zuordnung und Schlüssel-Zuweisung)

public class ScannerContext : DbContext
{
    public ScannerContext()
        : base("LabDatabase") { }

    public DbSet<EAsset> EAssets { get; set; }
    public DbSet<EAssetType> EAssetTypes { get; set; }
    public DbSet<EOrgEnvironment> EOrgEnvironments { get; set; }
    public DbSet<EUser> EUsers { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<EAsset>().HasKey(k=>k.i_GID).ToTable("t_Assets");
        modelBuilder.Entity<EAssetType>().HasKey(k => k.i_ID).ToTable("t_Asset_Types");
        modelBuilder.Entity<EOrgEnvironment>().HasKey(k => k.i_ID).ToTable("t_Org_Environments");
        modelBuilder.Entity<EUser>().HasKey(k => k.i_ID).ToTable("t_Users");

        base.OnModelCreating(modelBuilder);

    }
}

Das Programm

class Program
{
    static void Main(string[] args)
    {
        EAsset Entity = new EAsset { s_Name = "jewri-pc" };
        var sContext = new ScannerContext();
        sContext.EAssets.Add(Entity);
        sContext.SaveChanges();
    }
}
  • Sie haben Felder in der DB sind Feste Länge haben, und diese Fremdschlüssel auf die DB-Tabelle, die nicht abgebildet im Modell.
  • Bedeutet das, dass meine DB zwingt mich zum anzeigen der verknüpften Elemente in EF? Ihr zwingt den FK ' s und die MaxLengths?
  • Ich fügte die fehlenden Beziehungen zu dem Modell, aber ich bekomme immer noch den gleichen Fehler. Ich möchte zu einem Punkt, wo es funktioniert, so kann ich damit beginnen, herauszufinden, wie alles zusammen geht. Ich habe viele Personen noch nicht enthalten ist, und planen diese Objekte robust, aber die bekomme ich sogar eine Entität in der DB der Verwendung von code first.
InformationsquelleAutor jwrightmail | 2012-10-16
Schreibe einen Kommentar