У меня есть класс Priority, в котором есть столбец datetime.Этот столбец имеет значение по умолчанию в SQL (после того, как EF сгенерирует базу данных и таблицу, я изменю значение по умолчанию с CreatedDate
на getdate()
).Поэтому я просто хочу вставить в другие столбцы Приоритет, но EF не позволяет мне и выдает эту ошибку:
System.InvalidOperationException: Модель, поддерживающая контекст ToDoModel, изменилась с момента создания базы данных,Либо удалите / обновите базу данных вручную, либо вызовите Database.SetInitializer с экземпляром IDatabaseInitializer.Например, стратегия RecreateDatabaseIfModelChanges автоматически удалит и повторно создаст базу данных и при необходимости заполнит ее новыми данными.
public class Priority
{
public int ID { get; set; }
public string Name { get; set; }
public string Color { get; set; }
public string Image { get; set; }
public DateTime CreatedDate { get; set; }
}
public class ToDoModel:DbContext
{
public ToDoModel() : base("ToDoList.ConnectionString") {
}
public DbSet<Priority> Priorites { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Priority>().MapSingleType().ToTable("tblPriority");
modelBuilder.Entity<Priority>().HasKey(x => x.ID);
modelBuilder.Entity<Priority>().Property(x => x.CreatedDate).StoreGeneratedPattern = StoreGeneratedPattern.Computed;
base.OnModelCreating(modelBuilder);
}
}
[TestMethod]
public void CanAddPriority()
{
var priority = new Priority();
priority.Color = "red";
priority.Image = "critical.jpg";
priority.Name = "Critical";
db.Priorites.Add(priority);
db.SaveChanges();
Assert.IsTrue(priority.ID > 0);
}