【发布时间】:2021-06-03 20:11:10
【问题描述】:
我在 Visual Studio 中创建了一个 ASP.NET MVC 示例应用程序。我添加了两个类,如下所示:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int Price { get; set; }
public ICollection<Product> Products { get; set; }
}
public class Order
{
public int Id{ get; set; }
public Product Product { get; set; }
public int ProductId { get; set; }
public DateTime RegisterDate { get; set; }
}
然后我在主DbContext 中添加了两个DbSet,如下所示:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public IDbSet<Product> Products { get; set; }
public IDbSet<Order> Orders { get; set; }
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
但是现在当我运行项目时,我得到了这个错误:
支持 'ApplicationDbContext' 上下文的模型在创建数据库后发生了变化
我只是想知道有没有办法在不使用迁移的情况下更新数据库(Add-migrations 和update-database)?
【问题讨论】:
-
我认为您正在寻找 DropCreateDatabaseIfModelChanges
-
您可以按照 Rise 的建议使用 database initializer。这些对于早期开发很方便,并且有自己的种子方法。获得要保留的非种子数据后,您可以切换到迁移。使用 null 初始化器不会创建数据库对象 - 它会假定代码模型与数据库匹配(危险)。
-
你可以删除
dbo.__MigrationHistory试试。请看下面stackoverflow.com/a/67821254/3057246的回答@
标签: c# asp.net entity-framework