2017-10-05 3 views
0

Wir sind in der ersten Entwicklung Anwendung von ef-Kern. Ich bin mir nicht sicher, wie ef Kern Modell Snapshot kommuniziert/fließt mit anderen Komponenten wie Migrationen und Datenbank.Ich weiß nicht, welche zuerst auf die Datenbank entweder Migrationen oder Modell Snapshot angewendet wird und wie überprüft mit Migrationen unter der Haube.Probleme mit Entityframework Kernmodell Snapshot in Teamumgebung

Mein Fall:

  1. Bestehende Migration & Snapshot in TFS (Developer getestet & verpflichtet Migraton & Modell Schnappschuss aus seinem System).
  2. Dev 2 holt sich das Neueste von seinem System und zeigt auf neue Datenbank ohne ausstehende Änderungen.
  3. beim Ausführen update-database er steht vor Fehler, dass die Spalte bereits gelöscht.

ALTER TABLE DROP COLUMN ist fehlgeschlagen, weil die Spalte 'CreatedDateTime' existiert nicht in der Tabelle 'TaskEntityRelationships'.

Simplified Schnappschuss:

modelBuilder.Entity("KrossDelivery.Data.Objects.TaskEntityRelationships.TaskEntityRelationship", b => 
     { 
      b.Property<int>("Id") 
       .ValueGeneratedOnAdd(); 

      b.Property<int>("CreationTransactionId"); 

      b.Property<int>("DeliveryAgentId"); 

      b.Property<int>("DeliveryExecutiveId"); 

      b.Property<DateTime?>("EndDateTime"); 

      b.Property<int?>("LastEditTransactionId"); 

      b.Property<DateTime>("StartDateTime"); 

      b.Property<int?>("TaskEntityStatusEventId"); 

      b.Property<int?>("TaskEntityStatusId"); 

      b.Property<int>("TaskId"); 

      b.HasKey("Id"); 

      b.HasIndex("CreationTransactionId"); 

      b.HasIndex("DeliveryAgentId"); 

      b.HasIndex("DeliveryExecutiveId"); 

      b.HasIndex("LastEditTransactionId"); 

      b.HasIndex("TaskEntityStatusEventId"); 

      b.HasIndex("TaskEntityStatusId"); 

      b.HasIndex("TaskId"); 

      b.ToTable("TaskEntityRelationships"); 
     }); 

vereinfachte Migration:

protected override void Up(MigrationBuilder migrationBuilder) 
    { 
     migrationBuilder.DropColumn(
      name: "CreatedDateTime", 
      table: "TaskEntityRelationships"); 
} 

Von Code kann ich verstehen, dass CreatedDateTime bereits von Modell fiel snapshot.Dev A sein Modell Snapshot begangen mit Migration, aber wenn Dev2 nehmen Sie spät und zeigen Sie neue Datenbank, es funktioniert nicht. Ich weiß nicht, wie man Modell-Snapshots und Migrationen verwaltet und in welcher Reihenfolge ich in TFS festschreiben sollte.

Bitte beraten. Danke!

Antwort

0

Zunächst habe ich EnsureCreated() verwendet und jetzt habe ich auf Migrate() jetzt seine Arbeit geändert.

+0

Dank für die Freigabe, können Sie [markieren Sie Ihre Antwort als Antwort] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), die auch hilft andere in der Gemeinschaft. – Chamberlain

Verwandte Themen