2017-10-05 11 views
0

Nous sommes dans une première phase de développement d'ef core. Je ne sais pas comment ef core Snapshot de modèle communique/flux avec d'autres composants comme Migrations et base de données.Je ne sais pas qui sera d'abord appliqué sur la base de données migrations ou modèle instantané et comment vérifie avec les migrations sous le capot.Problèmes avec l'instantané d'un modèle de base d'entitéframework dans un environnement d'équipe

Mon cas:

  1. phénomène migratoire & instantané disponible dans TFS (développeur testé & engagé instantané & La migration vers le modèle de son système).
  2. Dev 2 obtenir les dernières nouvelles de son système et pointant vers une nouvelle base de données sans aucune modification en attente.
  3. lors de l'exécution update-database il est confronté à une erreur que la colonne a déjà abandonnée.

ALTER TABLE DROP COLUMN a échoué parce que la colonne 'CreatedDateTime' n'existe pas dans la table 'TaskEntityRelationships'.

instantané simplifié:

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"); 
     }); 

simplifié Migration:

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

De code, je peux comprendre que CreatedDateTime déjà passé de modèle snapshot.Dev A commis son snapshot modèle avec la migration, mais quand Dev2 prendre la dernière et la nouvelle base de données, cela ne fonctionne pas. Je ne sais pas comment gérer l'instantané et les migrations de modèles et dans quelle séquence je devrais commettre dans TFS?

S'il vous plaît avis.Merci!

Répondre

0

Initialement, j'ai utilisé EnsureCreated() et maintenant j'ai changé pour Migrate() maintenant son fonctionnement.

+0

Merci pour le partage, vous pourriez [marquer votre réponse comme une réponse] (https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work), qui aidera également d'autres dans la communauté. – Chamberlain