C# 从实体框架6的代码设置数据库创建/迁移+;MySQL
我以前在项目中使用过NHibernate和Fluent Migrator来创建数据库(如果它还不存在的话),并通过迁移脚本更新模式。我正在查看实体框架(6)以进行比较,但在复制该功能时遇到了问题 在我的C# 从实体框架6的代码设置数据库创建/迁移+;MySQL,c#,mysql,.net,entity-framework,database-migration,C#,Mysql,.net,Entity Framework,Database Migration,我以前在项目中使用过NHibernate和Fluent Migrator来创建数据库(如果它还不存在的话),并通过迁移脚本更新模式。我正在查看实体框架(6)以进行比较,但在复制该功能时遇到了问题 在我的App.config中,我设置了连接字符串和数据库提供程序。然后,我继续创建了一个数据模型,我希望它在数据库中表示为一个表 namespace DataModels { public class StoreClient { public int Id;
App.config
中,我设置了连接字符串和数据库提供程序。然后,我继续创建了一个数据模型,我希望它在数据库中表示为一个表
namespace DataModels
{
public class StoreClient
{
public int Id;
public string DisplayName;
public StoreClient()
{
}
}
}
然后我继续创建了一个数据库上下文
namespace DataModels
{
public class StoreContext : DbContext
{
public DbSet<StoreClient> StoreClients { get; set; }
}
}
命名空间数据模型
{
公共类StoreContext:DbContext
{
公共数据库集存储客户端{get;set;}
}
}
在服务启动时,我创建了一个StoreContext
的实例,并尝试添加和调用db.SaveChanges()代码>,但此操作失败,因为没有与我的StoreClient匹配的架构
我的问题很简单。如何配置我的StoreContext
(或通常的EF)以自动创建数据库架构,以及如何将其设置为在对该架构进行更改时进行迁移
这似乎很简单,但我四处搜索并没有得到任何来自NHibernate世界的熟悉信息。如果希望自动创建数据库,请尝试在应用程序的\u Start()方法中添加一些代码。
例如:
Database.SetInitializer(new MigrateDatabaseToLatestVersion<StoreContext, Configuration>());
StoreContext context = new StoreContext();
context.Database.Initialize(true);
太棒了,谢谢你的提示。在哪里配置迁移步骤?我假设它不仅仅是隐式地进行分类?当您启用迁移时,它为您构建了一个配置类,其中包含一些功能。我想所有其他的事情都是自动完成的。
namespace DataModels
{
public class StoreClient
{
public int Id { get; set; }
public string DisplayName { get; set; }
public StoreClient()
{
}
}
}