Ich habe zwei Projekte mit jeweils einer eigenen DbContext-Klasse, die in die gleiche SQL Server 2012-Datenbank schreiben.Code Erste Migrationen mit mehreren DbContexts scheitern beim Festlegen des Standardschemas
Die DbContext Klassen sind von der Form:
public class BlogDbContext : DbContext
{
public BlogDbContext()
: base("CodeFirstTestConnString")
{
}
public BlogDbContext(string connectionString)
: base(connectionString)
{
}
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//modelBuilder.HasDefaultSchema("blogtest");
}
}
Verwenden von Code Erste Migrations Ich kann meine Tabellen in der (bestehenden) Datenbank durch Ausführen der folgenden in jedem Projekt erstellen:
Enable-Migrations
Add-Migration Initial
Update-Database
Diese funktioniert gut, aber wenn ich in der Zeile oben kommentiert, um das Standardschema zu setzen (beide Projekte verwenden das gleiche Schema), schlägt Update-Datenbank im zweiten Projekt mit dem Fehler "Es gibt bereits ein Objekt mit dem Namen '__MigrationHistory' in der Datenbank.".
Durch Ausführen von "Update-Database -Verbose" kann ich sehen, dass mit dem Standardschema geändert "CREATE TABLE [blogtest]. [__ MigrationHistory]" für das zweite Projekt ausgeführt wird; Wenn ich das Standardschema nicht ändere, versucht es nur, diese Tabelle das erste Mal zu erstellen.
Ist das ein Bug in Entity Framework, oder fehlt mir etwas?