C# 团队环境中entityframework核心模型快照的问题

C# 团队环境中entityframework核心模型快照的问题,c#,ef-code-first,entity-framework-core,entity-framework-migrations,C#,Ef Code First,Entity Framework Core,Entity Framework Migrations,我们正在初步开发ef core的应用程序。我不确定ef core的性能如何 模型快照与其他组件(如迁移和数据库)通信/流动。我不知道迁移或模型快照将首先应用于数据库,以及如何在引擎盖下验证迁移 我的情况是: TFS中提供的现有迁移和快照(开发人员测试和提交) 从his系统进行迁移和模型快照) dev2从他的系统中获取最新信息,并指向新数据库,而没有任何挂起的更改 当执行updatedatabase时,他面临的错误是列已经删除 ALTER TABLE DROP COLUMN失败,因为表格“Task

我们正在初步开发ef core的应用程序。我不确定ef core的性能如何 模型快照与其他组件(如迁移和数据库)通信/流动。我不知道迁移或模型快照将首先应用于数据库,以及如何在引擎盖下验证迁移

我的情况是:

  • TFS中提供的现有迁移和快照(开发人员测试和提交) 从his系统进行迁移和模型快照)
  • dev2从他的系统中获取最新信息,并指向新数据库,而没有任何挂起的更改
  • 当执行
    updatedatabase
    时,他面临的错误是列已经删除
  • ALTER TABLE DROP COLUMN失败,因为表格“TaskEntityRelationships”中不存在列“CreatedDateTime”

    简化快照:

    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");
            });
    
    从代码中,我可以理解CreatedDateTime已经从模型快照中删除。Dev A通过迁移提交了他的模型快照,但当Dev2获取最新数据并指向新数据库时,它不工作。我不知道如何管理模型快照和迁移,以及在TFS中提交的顺序


    请大家多多指教,谢谢

    最初我使用了
    EnsureCreated()
    ,现在我改为
    Migrate()
    ,现在它可以工作了。

    感谢您的分享,这也将帮助社区中的其他人。
    protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.DropColumn(
                name: "CreatedDateTime",
                table: "TaskEntityRelationships");
    }