繁体   English   中英

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

[英]How to delete column from db without having migrations enabled?

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

现在我有一个DbContext像:

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

      }

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

和产品型号:

    [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; }
    }

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

var services = scope.ServiceProvider;
var context = services.GetRequiredService<DataContext>();
context.Database.EnsureCreated();

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM