Как удалить столбец из БД без включения миграции? - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть приложение .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-Migration и Update-Database.Могу ли я сделать это с context.Database>EnsureCreated()?

1 Ответ

0 голосов
/ 30 ноября 2018

Я думаю, что это невозможно без включения миграции.Поэтому я включил миграцию в своем приложении и изменил context.Database.EnsureCreated() на context.Database.Migrate(), и теперь все работает, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...