Ursprünglich verwendete ich zuerst EF 6-Code, um eine neue Datenbank und zwei neue Tabellen zu erstellen. Der Code lautet:So fügen Sie dem vorhandenen Datenbankcode zuerst eine neue Tabelle hinzu
public class TestingContext : DbContext, IDisposable
{
public DbSet<CallDataRecord> CallDataRecords { get; set; }
public DbSet<Attempt> Attempts { get; set; }
public TestingContext()
: base("Testing")
{
Database.SetInitializer<TestingContext>(new MigrateDatabaseToLatestVersion<TestingContext, GenericIVR.Migrations.Configuration>());
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Attempt>().HasRequired(t => t.CallDataRecord).WithMany(a => a.Attempts).HasForeignKey(t => t.FKTaskId);
modelBuilder.Entity<Attempt>().Property(x => x.AttemptId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).IsRequired();
modelBuilder.Entity<CallDataRecord>().Property(x => x.TaskId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).IsRequired();
}
}
Jetzt ist meine Strategie geändert, ich will keine neue DB. Ich möchte die neuen Tabellen zu einer vorhandenen Datenbank hinzufügen, sagen DevDB
.
Wie kann ich den Code ändern? Muss ich verwenden Reverse Engineering Code First?
AKTUALISIERT: Die Verbindungszeichenfolge ist:
<connectionStrings>
<add name="Testing" connectionString="Data Source=dddd.corporate.xxxx.com; Initial Catalog=Testing; User ID=sa; Password=password; MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
An alle, die versuchen, diesen Beitrag so zu bearbeiten, dass sie den Schritt Add-Migration vor dem Update-Datenbank-Befehl enthalten, habe ich unter der Annahme, dass automatische Migrationen aktiviert sind, geantwortet, weshalb ich nicht versuche, diese Änderung manuell zu scaften. Scrollen Sie nach unten zu "Ihre erste automatische Migration" http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx – JsonStatham