繁体   English   中英

通过Entity Framework 6 + MySQL的代码设置数据库创建/迁移

[英]Set up database creation/migrations from code for Entity Framework 6 + MySQL

我以前在项目中使用过NHibernate和Fluent Migrator来创建数据库(如果尚不存在)并通过迁移脚本更新架构。 我正在查看Entity Framework(6)进行比较,但无法复制该功能。

在我的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实例,并尝试添加并调用db.SaveChanges(); ,但这失败了,因为没有与我的StoreClient相匹配的架构。

我的问题很简单。 如何配置StoreContext (或通常的EF)以自动创建数据库架构,以及如何在更改该架构时将其设置为迁移?

这看起来很简单,但是我周围的搜索并没有给我任何来自NHibernate世界的看起来很熟悉的东西。

如果要自动创建数据库,请尝试在Application_Start()方法中放入一些代码。 例如:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<StoreContext, Configuration>());
StoreContext context = new StoreContext();
context.Database.Initialize(true);

在控制台中启用在自动迁移时创建Configuration类的位置。 查看此msdn 演示 另外我也不保证您的代码冷杉模型会那样工作。 如果没有,请尝试使用属性更改字段。

namespace DataModels
{
    public class StoreClient
    {
        public int Id { get; set; }
        public string DisplayName { get; set; }
        public StoreClient()
        {
        }
    }
}

暂无
暂无

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

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