如何在不启用迁移的情况下从数据库删除列?

时间:2018-11-29 09:22:57

标签: .net sql-server asp.net-core database-migration

我有一个.net core 2.1应用程序,其中有一个小型SqlServer 2016数据库,该数据库仅包含一个表即Product。

现在我有一个DbContext了:

Link Framework SDKs Only

和产品型号:

    public class DataContext : DbContext
    {
      public DataContext(DbContextOptions<DataContext> options) : base(options)
      {

      }

      public virtual DbSet<Product> Product { get; set; }
    }

在Program.cs文件中,我这样称呼:

    [DataContract]
    public class Product
    {
        [DataMember]
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
        [DataMember]
        [MaxLength(100)]
        public string Name { get; set; }
        [DataMember]
        public DateTime CreatedDate { get; set; }
        [DataMember]
        public string CreatedBy { get; set; }
        [DataMember]
        public DateTime UpdatedDate { get; set; }
        [DataMember]
        public string UpdatedBy { get; set; }
    }

现在的问题是我没有在项目中启用迁移,我想从数据库中删除2列,即CreatedBy和UpdatedBy。但是我必须删除表,以便可以反映出更改。反正有没有删除表吗?就像我们启用迁移时所做的一样。 var services = scope.ServiceProvider; var context = services.GetRequiredService<DataContext>(); context.Database.EnsureCreated(); Add-Migration。我可以用Update-Database吗?

1 个答案:

答案 0 :(得分:0)

我认为如果不启用迁移是不可能的。因此,我已在应用程序中启用了迁移,并将context.Database.EnsureCreated()更改为context.Database.Migrate(),现在一切正常。